AJUDA P/ MONTAR SELECT P/ ESTOQUE

JGDJGD1 13/05/2010 10:59:54
#341654
Olá Pessoa,

Tenho o select:
Citação:

Select tbEstoque.qtde AS Q, sum(tbEstoque.credito) as C, sum(tbEstoque.debito) as D, C-D as SDO, tbEstoque.und,tbEstoque.idProd from tbProdutos,tbEstoque where (tbProdutos.idProd=tbEstoque.idProd) and tbEstoque.idProd=3 GROUP BY tbEstoque.idProd,tbEstoque.und



Ele me dá o saldo em estoque a partir do Group By + uma subtração.
No entanto, com relação a quantidade a informação vem errada...
Claro que no caso assim eu estou somando a quantidade o que está errado tb.

Precisaria efetuar tb a subtração dos lançamento a Crédito dos lançamentos a Débito como acontece com o Saldo.

Na tabela ( Access ) tenho as seguintes colunas:
Citação:

idLanc | data | DC | Qtde |und | credito | debito



Coluna DC = Literal D ou C /// Débito ou Crédito


Mas como fazer isso sendo que o campo Qtde. é o mesmo tanto para Crédito, quanto para Debito diferentemente do valor lançado, que no caso de credito é lançado na coluna Credito e no debito é na coluna Credito.

Agradeço qualquer ajuda.

Valeu!
JGDJGD1
JESUEL.OLIVEIRA 24/05/2010 22:07:34
#342662
Amigo, JGDJGD1

Fiz uma SQL SUM IF da uma olhada ai, e vê se ajuda.

select sum(if (tipo = [ô]C[ô],id_fornec,0)) as entrada,  sum(if (tipo = [ô]D[ô],id_fornec,0)) as saida, sum(if (tipo = [ô]C[ô],id_fornec,0)) - sum(if (tipo = [ô]D[ô],id_fornec,0)) as estoque from cotacao


Na primeira ela soma os Credito e na segunda os Debitos e na terceira os CREDITO - DéBITO, utilizando apenas a coluna no seu caso DC, eu fiz isso no MYSQL mas acredito que funcione em qualquer outro banco, qualquer dúvida posta ai.

Os campos if_fornec você substitue pela quantidade é que minha tabela ja estava pronta hehehehehh
JGDJGD1 25/05/2010 08:31:38
#342687
JESUEL OLIVEIRA,

Valeu pela dica..

No Access o arranjo [Ô]if[Ô] que você sugeriu não rolou... Dá: Função [Ô]if[Ô] não definida na expressão.

Mas não sabia que dava pra fazer alguma coisa com if na query....
Depois vou testar o recurso no MySQL.
Eh!!! Vivendo e aprendendo...

+ 1 Valeu pela dica.

Abraço.

JGDJGD1

MARCELO.TREZE 25/05/2010 08:59:08
#342689
Resposta escolhida
colega troque o [Ô]IF[Ô] por [Ô]IIF[Ô], ou seja com dois [Ô]I[ô]s[Ô]

Tópico encerrado , respostas não são mais permitidas