[firebase-br] Duvida comando Case

Daniel Maranhão danielmachado em agetop.goias.gov.br
Seg Jun 27 10:16:52 -03 2011


Eduardo,

Concordo que minha modelagem não é das melhores, pois eu estou aprendendo, e 
sem condições de fazer uma nova.

esse produto.servico era pra ser um tag de controle, mas não está 
funiconando,

a ideia do criterio é
quando o produto for serviço (por isso a tag), ele pega o preço da tabela de 
entrada, quando não for serviço, pegar da tabela estoque.

----- Original Message ----- 
From: "Eduardo Jedliczka" <edujed em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, June 27, 2011 9:55 AM
Subject: Re: [firebase-br] Duvida comando Case


acho que há algum furo na sua lógica... a cláusula "WHEN
produto.servico = 1" está igual para ambas as situações.

Outra coisa, reorganize o seu SQL.. será que não seria o caso de você
fazer um UNION (onde cada um traz os dados com os joins corretos)?
Mais uma coisa, você realmente precisa daquele DISTINCT pois parece há
algum problema na modelagem do seu sistema.

PS: como não entendi direito o seu exemplo (há campos retornados no
sql que não constam no modelo das tabelas) e sua necessidade real
(qual é o critério para trazer ORA um valor ORA outro), não há muito
como ajudar...

==========================
Eduardo Jedliczka
Apucarana - Pr
==========================




Em 27 de junho de 2011 09:45, Daniel Maranhão
<danielmachado em agetop.goias.gov.br> escreveu:
> 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.
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista