[firebase-br] Duvida comando Case

Daniel Maranhão danielmachado em agetop.goias.gov.br
Seg Jun 27 09:45:20 -03 2011


Senhores,  Bom Dia

Tenho as seguintes tabelas:

Produto:
- IDPRODUTO
- Nome

Pessoa
- IDPESSOA
- NOME

Entrada:
- IDENTRADA
- PRODUTO_ID
- PESSOA_ID
- DATA_ENTRADA
- QUANTIDADE
- VALOR UNITARIO
- VALOR TOTAL

SAIDA
- IDSAIDA
- DATA_SAIDA
- QUANTIDADE_SAIDA
- PRODUTO_ID
- PESSOA_ID

ESTOQUE
- SALDO
- ULT_PRECO
- PRODUTO_ID


Qual é o problema. Preciso fazer um relatorio de saida. Nesse relatório de 
saida, eu pegava o ultimo preço da tabela estoque. Até ai tudo bem. O SQL 
Funcionou, está funcionando.
Porém, agora o meu cliente me pediu uma rotina na qual eu as vezes, vou 
precisar pegar o preço, da tabela entrada, e nesse mesmo relatório, alguns 
items, eu vou pegar o preço da tabela estoque
e alguns items vou pegar da tabela entrada. Porém não estou conseguindo 
fazer esse vinculo. Alguem pode me ajudar ? O SQL deve me retornar todos os 
items que uma determina pessoa utilizou
O SQL que estou usando é:

select distinct saida.idsaida,
pessoa.nome as cliente,
produto.nome as produto,
produto.servico,
saida.data_saida,
saida.qnt_atendida as quantidade,
CASE
  WHEN produto.servico = 1
   then entrada.preco_unit
   else estoque.ult_preco
 end as preco,
case
  WHEN produto.servico = 1
   then saida.qnt_solicitada * entrada.preco_unit
   else saida.qnt_solicitada * estoque.ult_preco
 end as total

from saida, produto, pessoa, estoque, ENTRADA

where saida.produto_id = produto.idproduto
and saida.pessoa_id = pessoa.idpessoa
and estoque.produto_id = produto.idproduto
and pessoa.idpessoa = 61
order by saida.data_saida


Fico agradecido por qualquer tipo de ajuda.

Atc,

Daniel.





Mais detalhes sobre a lista de discussão lista