Página 1 de 1
Somar iguais, mas incluindo o campo a ser somado
Enviado: 24 Jun 2021 18:20
por JoséQuintas
Uma ocorrência diferente:
Somar valores iguais, incluindo o campo a ser somado
Código: Selecionar todos
SELECT CODIGO, SUM( QTDE ) AS SOMA FROM TABELA GROUP BY CODIGO, QTDE
Se os grupos no GROUP BY precisam constar na lista de campos do resultado, como somar valores iguais?
Somar iguais, mas incluindo o campo a ser somado
Enviado: 24 Jun 2021 18:27
por JoséQuintas
Talvez isto

?
Código: Selecionar todos
SELECT CODIGO, SUM( QTDE ) * QTD AS SOMA
FROM
(
SELECT CODIGO, QTDE, COUNT( *) AS QTD
FROM TABELA
GROUP BY CODIGO, QTDE
) AS B
Somar iguais, mas incluindo o campo a ser somado
Enviado: 24 Jun 2021 18:37
por JoséQuintas
Ah sim... e também códigos iguais.
Neste mês a ANP está reclamando porque informamos exatamente igual à nota da Petrobrás, mas.... existe produto repetido na nota.
Então temos:
a) Se tem produto com mesmo código próprio, somar
b) Se tem produto com mesmo código ANP e quantidade igual, somar
exemplo exagerado, mesma nota:
nosso código 10, anp 259, quantidade 10
nosso código 10, anp 259, quantidade 15
nosso código 20, anp 259, quantidade 25
nosso código 30, anp 259, quantidade 10
os dois códigos 10 precisam ser somados, porque é produto repetido
primeiro resultado
nosso código 10, anp 259, quantidade 25
nosso código 20, anp 259, quantidade 25
nosso código 30, anp 259, quantidade 10
pra ANP não interessa nosso código....
anp 259, quantidade 25
anp 259, quantidade 25
anp 259, quantidade 10
Agora não pode ter produto exatamente igual, precisa agrupar QUANTIDADE igual
Esse é o resultado final a ser gerado.
anp 259, quantidade 50
anp 259, quantidade 10
trem chato né?
Agora pensar em como fazer isso em SQL.
Isso é POR NOTA/DOCUMENTO
Somar iguais, mas incluindo o campo a ser somado
Enviado: 24 Jun 2021 18:44
por JoséQuintas
JoséQuintas escreveu:exemplo exagerado, mesma nota:
Nem é exemplo exagerado, porque tem cada situação.
Apenas acho que é difícil acontecer na prática tudo de uma vez, mas pode acontecer.
Somar iguais, mas incluindo o campo a ser somado
Enviado: 24 Jun 2021 19:12
por alxsts
Olá!
JoséQuintas escreveu:SELECT CODIGO, SUM( QTDE ) AS SOMA FROM TABELA GROUP BY CODIGO, QTDE
No caso acima, a coluna QTDE não precisa estar no GROUP BY pois ela é argumento de uma função de agregação, Sum().
Somar iguais, mas incluindo o campo a ser somado
Enviado: 24 Jun 2021 21:21
por JoséQuintas
alxsts escreveu:No caso acima, a coluna QTDE não precisa estar no GROUP BY pois ela é argumento de uma função de agregação, Sum().
Mas aí é que está o detalhe: não vai somar quantidades diferentes.
quantidades 10, 20, 30, 40 e 10, só vai somar as duas de 10, não pode somar as outras.
Ao mesmo tempo que a soma de quantidade existe, ela também é uma identificação do que totalizar.
Acho que vão ser as duas etapas:
- a primeira obtendo QTD pra identificar QTDE duplicada e acumular no mesmo código próprio
- a segunda com a mesma coisa, pra identificar QTDE duplicada e acumular no mesmo código ANP
Precisa ser em duas etapas porque a primeira pode gerar novos duplicados.
E no final.... sempre vai dar diferença na ANP, porque não é a mesma ordem.
Somar iguais, mas incluindo o campo a ser somado
Enviado: 24 Jun 2021 21:46
por JoséQuintas
Por outro lado.....
Como sempre a ANP acusa diferença, porque não existe uma ordem definida quando isso acontece....
Mais prático somar tudo, e apenas enviar email de confirmação depois, como sempre é feito.
Explicando melhor:
A Petrobrás informa:
produto 259 qtde 10
produto 259 qtde 20
produto 259 qtde 30
Nós informamos:
produto 259 qtde 20
produto 259 qtde 30
produto 259 qtde 10
E a ANP responde isso com 9 (NOVE) erros.
Por outro lado, se mandarmos:
produto 259 qtde 60
A ANP vai responder com apenas 3 (TRES) erros.
E basta mostrar que a soma bate, e fica resolvido.
Neste mês veio um relatório com 6 páginas de erros, quase 120 erros, pra uma nota com uns 20 produtos.
Tá complicado conferir isso.
Estou preocupado de deixar passar alguma coisa nessa lista de erros maluca.