Fórum SubSelect retornando null #49392
16/02/2005
0
Estou tentando fazer um sql para selecionar a qtde de itens vendidos preciso somar nf + cupom.
Exemplo:
SELECT P.CODIGO,
(SELECT SUM(QTDE) FROM ITEMNF WHERE PRODUTO = P.CODIGO) ,
(SELECT SUM(QTDE) FROM ITEMCUPOM WHERE PRODUTO = P.CODIGO) FROM PRODUTO P
este me retorna uma coluna para cada total, mas eu gostaria que o retorno fosse em somente uma coluna.
Exemplo:
SELECT P.CODIGO,
(SELECT SUM(QTDE) FROM ITEMNF WHERE PRODUTO = P.CODIGO) +
(SELECT SUM(QTDE) FROM ITEMCUPOM WHERE PRODUTO = P.CODIGO) FROM PRODUTO P
mas neste caso se em uma das duas tabelas não houver ocorrencias vai me retornar ´null´.
Preciso encontrar uma solução.
[]Edison de Brito
Edison_br
Curtir tópico
+ 0Posts
16/02/2005
Gandalf.nho
Gostei + 0
17/02/2005
Edison_br
Gostei + 0
17/02/2005
Afarias
T+
Gostei + 0
17/02/2005
Edison_br
1 - Crio a procedure com duas variaveis cada uma com a soma de uma das tabelas e faço a verificação (IF) do valor se não for null alimento uma terceira variavel (output)?
2 - Mas como ficaria isto pois até onde sei eu não posso colocar um EXECUTE PROCEDURE em um select;
Gostei + 0
17/02/2005
Afarias
|das tabelas e faço a verificação (IF) do valor se não for null alimento
|uma terceira variavel (output)?
por ai... seria algo como:
if (val1 is null) then
val1 = 0;
if (val2 is null) then
val2 = 0;
resposta = val1 + val2;
|2 - Mas como ficaria isto pois até onde sei eu não posso colocar um
|EXECUTE PROCEDURE em um select;
set term ^; create procedure SaidasProdutos returns (produto varchar(10), total integer) as declare variable sub1 integer; declare variable sub1 integer; begin for SELECT P.CODIGO, (SELECT SUM(QTDE) FROM ITEMNF WHERE PRODUTO = P.CODIGO) , (SELECT SUM(QTDE) FROM ITEMCUPOM WHERE PRODUTO = P.CODIGO) FROM PRODUTO P into :produto, :sub1, :sub2 do begin if (sub1 is null) then sub1 = 0; if (sub2 is null) then sub2 = 0; total = sub1+sub2; suspend; end end^
então vc usa o procedimento na forma:
select * from SaidasProdutos;
T+
Gostei + 0
17/02/2005
Edison_br
Obrigado pela atenção.
Edison de Brito
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)