Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoa boa tarde, é minha primeira postagem no grupo, porém não é a primeira pesquisa, uso muito do forum para ajudar no dia a dia e sempre ajuda. Hoje estou com uma construção simples de uma query que começou a complicar, teria umas ideias mas nao consigo aplicar.
Primeiramente digo que comecei a utilizar Oracle a pouco mais de 2 anos, porém aprofundando somente em 5.. 6 meses pra cá.
Tenho a seguinte query.:
---------------------------------------------------
SELECT DISTINCT
a.cd_atendimento,
n.cd_produto,
q.cd_mvto_estoque,
q.hr_mvto_estoque,
u.qt_movimentacao,
q.tp_mvto_estoque,
q.cd_setor
FROM ...
WHERE n.cd_produto = u.cd_produto
AND a.cd_atendimento = q.cd_atendimento
AND q.cd_mvto_estoque = u.cd_mvto_estoque
AND n.cd_produto = 904
AND a.cd_atendimento = 423766
---------------------------------------------------
CD_ATENDIMENTO;CD_PRODUTO;CD_MVTO_ESTOQUE;HR_MVTO_ESTOQUE;QT_MOVIMENTACAO;TP_MVTO_ESTOQUE;CD_SETOR
423766;904;897122;09.04.2017 19:50:45;1;C;56
423766;904;894984;06.04.2017 11:50:43;1;P;56
423766;904;895160;06.04.2017 13:48:28;2;P;56
423766;904;896796;08.04.2017 15:24:03;2;P;56
423766;904;897836;10.04.2017 14:30:51;2;P;56
423766;904;898383;11.04.2017 08:55:50;2;P;56
O negocio é que nessa saída eu preciso somar somente os TP_MVTO_ESTOQUE = P e subtrair da soma dos TP_MVTO_ESTOQUE = C .. eu consigo gerar algo do tipo?..deu certo.. para o que precisava.. apenas dei uma adaptada aqui interna.. porém to com uma dúvida em relação ao SUM, tenho 2 campos onde faço uma subtração, esses dois campos já são mencionados no SELECT antes da operação, mas quando faço o GROUP BY ele separa as linhas novamente :/
-------//-------
SELECT n.cd_atendimento,
n.cd_produto,
Sum(n.qt_saida),
Sum(n.qt_devolvida),
Sum((n.qt_saida - n.qt_devolvida)) QT_CONSUMIDA
FROM prod_atend n WHERE cd_atendimento = 423766 AND cd_produto = 579
GROUP BY n.cd_atendimento,
n.cd_produto,
n.qt_saida
-------//-------
CD_ATENDIMENTO;CD_PRODUTO;SUM(N.QT_SAIDA);SUM(N.QT_DEVOLVIDA);QT_CONSUMIDA
423766;579;9;1;8
423766;579;8;1;7
**Eu esperava o resultado assim.:**
**CD_ATENDIMENTO;CD_PRODUTO;SUM(N.QT_SAIDA);SUM(N.QT_DEVOLVIDA);QT_CONSUMIDA**
**423766;579;17;2;15**Bom dia Patrick,
Tente executar sem colocar n.qt_saida no group by.
>
9 horas atrás, spernega disse:
Bom dia Patrick,
Tente executar sem colocar n.qt_saida no group by.
Juro que tava dando erro e pedia o qt_saida e o qt_devolvida, não sei se é pelo fato de ter um trunc antes (retirei), mas ai deu certo mesmo..
>
Citar
O negocio é que nessa saída eu preciso somar somente os TP_MVTO_ESTOQUE = P e subtrair da soma dos TP_MVTO_ESTOQUE = C .. eu consigo gerar algo do tipo?
tente algo assim
SUM((CASE WHEN TP_MVTO_ESTOQUE = 'P' THEN 1
WHEN TP_MVTO_ESTOQUE = 'C' THEN -1
ELSE 0 END) * QT_MOVIMENTACAO) QT_MOVIMENTACAO