Procurar
Tópicos semelhantes
Últimos assuntos
Sentença SQL
3 participantes
Página 1 de 1
Sentença SQL
select
isnull(tprd.descricao,'')+' '+
isnull(rtrim(ltrim( ( select cast( historicolongo as varchar(500) ) from titmmovhistorico where idmov = :idmov and nseqitmmov = :nseqitmmov ) ) ),'' )
+ case when i.campolivre is not null then ' Cod.Prod.Cliente: '+i.campolivre else ''
end
from titmmov i, tprd
where
i.codcoligada=tprd.codcoligada and
i.idprd=tprd.idprd and
i.idmov = :idmov and i.nseqitmmov = :nseqitmmov and i.idprd=:idprd
erro: Falha na execução da consulta SQL "R012". Erro: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= ,>,>= or when the subquery is used as an expre
isnull(tprd.descricao,'')+' '+
isnull(rtrim(ltrim( ( select cast( historicolongo as varchar(500) ) from titmmovhistorico where idmov = :idmov and nseqitmmov = :nseqitmmov ) ) ),'' )
+ case when i.campolivre is not null then ' Cod.Prod.Cliente: '+i.campolivre else ''
end
from titmmov i, tprd
where
i.codcoligada=tprd.codcoligada and
i.idprd=tprd.idprd and
i.idmov = :idmov and i.nseqitmmov = :nseqitmmov and i.idprd=:idprd
erro: Falha na execução da consulta SQL "R012". Erro: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= ,>,>= or when the subquery is used as an expre
Re: Sentença SQL
Veja este select:
( select cast( historicolongo as varchar(500) ) from titmmovhistorico where idmov = :idmov and nseqitmmov = :nseqitmmov )
Aqui provavelmente você retorna mais de um valor nseqitmmov = :nseqitmmov, e por isso, não pode ser =, deveria ser In.
Este campo nseqitmmov, é o número de cada um dos ítens dos movimentos, por isso, a possibilidade de sua sentença estar retornando mais de um ítem é grande, e portanto a utilização do sinal de igual (=) não ser o ideal e sim IN.
( select cast( historicolongo as varchar(500) ) from titmmovhistorico where idmov = :idmov and nseqitmmov = :nseqitmmov )
Aqui provavelmente você retorna mais de um valor nseqitmmov = :nseqitmmov, e por isso, não pode ser =, deveria ser In.
Este campo nseqitmmov, é o número de cada um dos ítens dos movimentos, por isso, a possibilidade de sua sentença estar retornando mais de um ítem é grande, e portanto a utilização do sinal de igual (=) não ser o ideal e sim IN.
Re: Sentença SQL
Mas o = não retornaria todos os valores desta tabela?
Luís Filipe- Mensagens : 16
Pontos : 29
Data de inscrição : 29/04/2010
Idade : 38
Re: Sentença SQL
Não! O Igual só tem condições de igualar um valor de cada vez. Se a sua sentença retorna vários valores de cada vez, ele vai se perder, por isso a necessidade de usar o IN.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Ter 20 Jun 2017 - 12:48 por paulo.ferreira_rj
» Instalar base DEMO
Sex 2 Jun 2017 - 6:29 por akaytatsu
» Relatorio Rm reports / Holerite salario
Ter 18 Out 2016 - 8:09 por Gárgio
» DEFAULT NO CADASTRO DE FUNCIONARIOS RM LABORE
Sex 7 Out 2016 - 21:51 por mpsbrasilia
» Duvida RM Labore - Calculo Folha de Pagamento
Seg 12 Set 2016 - 15:51 por RIVALDO PAES
» Exportar Imagem do banco de dados SQL SERVER
Qui 28 Jul 2016 - 11:42 por edivan
» Consulta SQL
Qui 10 Set 2015 - 11:32 por evertonerp
» Existe Algum Demo do RM Labore???
Sex 17 Abr 2015 - 11:53 por fmsolucoes
» RM BIBLIOS
Seg 16 Fev 2015 - 7:50 por fmsolucoes