Fórum Codigo SQl para não exibir dados #41659
19/01/2004
0
Select P.codigo, P.descricao, P.Quant, E.Quant as Estoque, Sum(P.Quant-E.Quant) as QuantPedir From Estoque E, Pedido P where P.codigo = E.Codigo Group by P.codigo, P.descricao, P.Quant, E.Quant
Como faço para não exibir os dados do campo ´QuantPedir´ quando for menor ou igual a zero.
Select P.codigo, I.descricao, P.Quant, E.Quant as Estoque, Sum(P.Quant-E.Quant) as QuantPedir From Estoque E, Pedido P, Cad_Itens where P.codigo = E.Codigo and P.Codigo = I.Codigo Group by P.codigo, I.descricao, P.Quant, E.Quant
Se não existir um registro em uma das tabelas não exibirá nada mas eu gostaria que exibisse em branco como faço?
Marbravo
Curtir tópico
+ 0Posts
21/01/2004
Afarias
|menor ou igual a zero.
Se estiver usando FB 1.5 vc pode usar CASE e NULLIF
se não, UDF
|Se não existir um registro em uma das tabelas não exibirá nada mas eu
|gostaria que exibisse em branco como faço?
LEFT JOIN ou FULL JOIN ??
T+
Gostei + 0
21/01/2004
Marbravo
Uma UDF é uma dll que eu declaro no FireBird(Migrei para 1.0.3) e quando for puxar o select utilizo, mas ainda não está claro. Se não for pedir de mais, será que vc poderia colocar o codigo de como devo fazer.
Eu tentei usar, mas não deu certo, a consulta fica processando, processando, processando... e nada ai eu tenho que finalizar. Talvez seria por que tentei usar mais do que uma tabela na consulta. Se realmente for isso como devo fazer a consulta abaixo?
Select P.codigo, I.descricao, P.Quant, E.Quant as Estoque, Sum(P.Quant-E.Quant) as QuantPedir From Estoque E, Pedido P, Cad_Itens where P.codigo = E.Codigo and P.Codigo = I.Codigo Group by P.codigo, I.descricao, P.Quant, E.Quant
Muito Obrigado
MarBravo
Gostei + 0
21/01/2004
Afarias
|quando for puxar o select utilizo, mas ainda não está claro. Se não for
|pedir de mais, será que vc poderia colocar o codigo de como devo fazer.
digamos q vc faz uma função q recebe um parâmetro INTEIRO e retorna outro INTEIRO -- se o valor do parâmetro for <= X então retorna 0 (ou NULL) caso contrário, retorna o valor do parâmetro!
então, vc poderia declarar no FB e fazer::
select funcao_tal(nome_do_campo) from nome_tabela
mas, vc tb pode usar um Stored Procedure pro seu caso (acho até melhor -- udfs são ´perigosas´) -- ex::
set term ^; create procedure teste1 returns (campo1 varchar(10), campo2 integer) as begin for select campo1, campo2 from sua_tabela into :campo1, :campo2 do begin if (campo1 < 5) then campo1 = null; suspend; end end^
pronto! bem simples, não??
quanto ao left join -- vc tentou algo assim::
Select P.codigo, I.descricao, P.Quant, E.Quant as Estoque, Sum(P.Quant-E.Quant) as QuantPedir
From Estoque E left join Pedido P on (E.Codigo = P.codigo)
left join Cad_Itens I on (P.Codigo = I.Codigo)
Group by P.codigo, I.descricao, P.Quant, E.Quant
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)