Codigo SQl para não exibir dados
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
Curtidas 0
Respostas
Afarias
19/01/2004
|Como faço para não exibir os dados do campo ´QuantPedir´ quando for
|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+
|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
Marbravo
19/01/2004
Se estiver usando FB 1.5 vc pode usar CASE e NULLIF
se não, UDF
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.
LEFT JOIN ou FULL JOIN ??
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
Afarias
19/01/2004
|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.
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::
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+
|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