getting message "Subquery returned more than 1 value..."

Discussion of open issues, suggestions and bugs regarding SDAC (SQL Server Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
luis_augusto
Posts: 43
Joined: Fri 14 Oct 2005 13:45

getting message "Subquery returned more than 1 value..."

Post by luis_augusto » Tue 15 Aug 2006 20:15

I am gettine the following message:

"Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, , >=or when the subquery is used as an expression."

opening the following query:

Select It.Cliente from Itenscpr as It
where
(It."Quantidade Entregue" <It."Quantidade" - It."Qtde Cancelada" )
or
((It."Quantidade Entregue" is null) and (It."Qtde Cancelada" is null))
group by It.Cliente
order by
It.Cliente asc

This is a simple query. Apparently, there is no subquery involved. In fact, It opens fine under Mssql query analyzer.

Using DBMonitor, I've noticed that the message occurs prior the submitting of the sentence, therefore I assume that is a SDAC message.

In that case, I would like to know what does it mean and how can I avoid it.

Thanks.

Antaeus
Posts: 2098
Joined: Tue 14 Feb 2006 10:14

Post by Antaeus » Wed 16 Aug 2006 08:15

Please supply us with script to create and fill table you use in your query. You can send it to evgeniyD*crlab*com.

luis_augusto
Posts: 43
Joined: Fri 14 Oct 2005 13:45

Post by luis_augusto » Wed 16 Aug 2006 14:13

I´ve discovered that using the following combination,when opening a query, raises the problem:

FetchAll:=false;
Fetchrows:=500;
Options.QueryRecCount:=true;
Options.FullRefresh:=true;
Options.LongStrings:=true;
Options.TrimFixedChar:=true;
Options.TrimVarChar:=true;
Options.QuoteNames:=true;
Options.RemoveOnRefresh:=true;

When I´ve turn FetchAll to true, the problem has disappeared.

Thanks, anyway.

luis_augusto
Posts: 43
Joined: Fri 14 Oct 2005 13:45

Same problem during a simple query

Post by luis_augusto » Fri 15 Sep 2006 22:10

Why the simple query below raises the following exception:

"Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, , >=or when the subquery is used as an expression."

Query:

Select produtos."Código Interno" ,produtos."Código Divulgado", produtos."Descrição"
from produtos
group by
produtos."Código Interno",produtos."Código Divulgado",produtos."Descrição"

Script:

Create table Colossus.[dbo].produtos(
[Código Interno] Int identity(1, 1),
Categoria varchar(3),
Descrição varchar(80),
Especificações text,
Unidade varchar(2),
Prateleira varchar(6),
Saldo numeric,
Reserva numeric,
[Estoque Mínimo] numeric,
[Estoque Máximo] numeric,
Peso numeric,
[Custo Médio] money,
[Ultimo Custo] money,
[Ultima Entrada] datetime,
[Ultima Movimentação] datetime,
[Classe Fiscal] varchar(12),
IPI numeric,
[Código de Barras] varchar(14),
Foto image,
[Código Divulgado] varchar(20),
[Fator de Conversão] numeric default 1,
[Unidade de Entrada] varchar(2),
[Lote Econômico] numeric,
[Saldo no inventário] numeric,
[Ultimo Inventário] datetime default GETDATE(),
Projeto Int,
Subcategoria varchar(20),
[Situação Tributária] varchar(3),
Obsoleto bit default 0,
Validade Int,
Lotes Int,
Preço money default 0,
Lista Int default 1,
[Parâmetros Técnicos] text,
[Lote Mínimo de Produção] numeric,
Depreciação numeric,
[Valor Residual] numeric,
[Cadastrado por] varchar(15),
[Cadastrado em] datetime default GETDATE(),
Controles text,
[Peso Específico] numeric default 1,
Dispositivos text,
ICMS numeric,
[Unidade DImensional] varchar(4)
Unique clustered ([Código Interno]));
Create nonclustered index indprodutos0 on Colossus.[dbo].produtos(
[Lista],[Categoria],[Subcategoria],[Código Divulgado]
);
Create nonclustered index indprodutos1 on Colossus.[dbo].produtos(
[Lista],[Categoria],[Código Divulgado]
);
Create nonclustered index indprodutos2 on Colossus.[dbo].produtos(
[Descrição]
);
Create nonclustered index indprodutos3 on Colossus.[dbo].produtos(
[Prateleira],[Categoria],[Código Interno]
);
Create nonclustered index indprodutos4 on Colossus.[dbo].produtos(
[Código Divulgado]
);
Create nonclustered index indprodutos5 on Colossus.[dbo].produtos(
[Código de Barras]
);
Create nonclustered index indprodutos6 on Colossus.[dbo].produtos(
[Classe Fiscal],[Categoria],[Código Interno]
);
Create nonclustered index indprodutos7 on Colossus.[dbo].produtos(
[Categoria],[Subcategoria]
);
Create nonclustered index indprodutos8 on Colossus.[dbo].produtos(
[Categoria],[Código Interno]
);
Create nonclustered index indprodutos9 on Colossus.[dbo].produtos(
[Categoria],[Código Divulgado]

Thanks

Jackson
Posts: 512
Joined: Thu 26 Jan 2006 10:06

Post by Jackson » Tue 19 Sep 2006 12:34

We couldn't reproduce the problem.
Please try to execute this query in Query Analyzer or another standard tool.
Send us (sdac*crlab*com) a complete small test project to reproduce the problem; it is desirable to use Northwind or Master schema objects, otherwise include definition of your own database objects; don't use third party components.

Also supply us following information
- Exact version of Delphi
- Exact version of SDAC. You can see it in About sheet of TMSConnection Editor
- Exact version of Microsoft SQL Server and OLE DB provider that you use.
You can see it in Info sheet of TMSConnection Editor

Post Reply