DISTINCT NÃO FUNCIONA!!
22/04/2013
0
Preciso que saia somente uma linha da coluna T0.ITEMCODE e não está funcionndo. Veja o Script:
SELECT DISTINCT T0.[ItemCode], T0.[Dscription]AS Descricao,
CONVERT(DECIMAL(10,0),SUM(T0.[Quantity])) AS QUANTIDADE,
CONVERT(DECIMAL(10,3),SUM(T0.[VatSum])) AS VALOR_TOTAL,
SUM(T0.[PriceBefDi]) AS IMPOSTO,
((T0.[PriceBefDi]+(T0.[VatSum]))/ T0.[Quantity]) AS CUSTO_MEDIO
FROM PCH1 T0
INNER JOIN OPCH T1 ON T0.DocEntry = T1.DocEntry
WHERE t1.DocDate BETWEEN '2012-02-01 00:00:00.000' AND '2012-12-31 00:00:00.000'
GROUP BY T0.Dscription, T0.ItemCode, T0.[PriceBefDi], T0.[VatSum], T0.Quantity
ORDER BY T0.ItemCode
Observe que o T0.[ItemCode] está sendo duplicado. Obrigado pela ajuda..
Cesar Augusto
Posts
23/04/2013
Douglas
ou você esta querendo dizer, que não quer a repetição dos dados.
23/04/2013
Alex Lekao
Acredito que o problema esteja no agrupamento que vc esta usando.
Verifique eliminar os campos que estão sendo agrupados e calculados na linha do select e verifica se funciona.
Espero ter podido ajudar.
Abraco.
Alex - Lekao
28/04/2013
Cesar Augusto
ou você esta querendo dizer, que não quer a repetição dos dados.
Boa noite!!
Não quero a repetição dos dados, ou seja, que a coluna ITEMCODE não se repita. Obrigado.
28/04/2013
Cesar Augusto
Acredito que o problema esteja no agrupamento que vc esta usando.
Verifique eliminar os campos que estão sendo agrupados e calculados na linha do select e verifica se funciona.
Espero ter podido ajudar.
Abraco.
Alex - Lekao
Boa noite Alex!
Se eu retirar os campos do grupamento, da uma mensagem de erro no GROUP BY.
29/04/2013
Romilson Cardoso
29/04/2013
Alex Lekao
A minha sugestao seria para retirar do group by as itens que estao recebendo os comandos de agrupamento como o sum o count, etc.
30/04/2013
Cesar Augusto
Olá..Sou novo por aqui, então não tenho muita prática em postar o resultado da consulta, mas acho que dará para ter uma idéia. Obseve que a coluna ItemCode esta duplicando. Preciso que liste todas as demais informações (descrição, Quantidade, etc...) por ItemCode. Obrigado..
ItemCode Descricao QUANTIDADE VALOR_TOTAL IMPOSTO CUSTO_MEDIO
000011 EIXO DE DIRECAO DO SISTEMA DE VACUO RC C2256046 ORIG 1 16.150 100.000000 116.150000000000000000
000018 TONER PB RC TIPO20D AF200 ORIG CART DST 1 16.150 100.000000 116.150000000000000000
000023 ROLO DE ALIMENTACAO DE ORIGINAIS RC C2173053 ORIG 1 3.881 100.000000 103.880800000000000000
000046 BUCHA FUSOR AL/AR/XD GEN G265 SP NBRGP0567FCZZ ORIG 2 1.320 17.000000 9.160000000000000000
000046 BUCHA FUSOR AL/AR/XD GEN G265 SP NBRGP0567FCZZ ORIG 3 0.000 18.000000 6.000000000000000000
000046 BUCHA FUSOR AL/AR/XD GEN G265 SP NBRGP0567FCZZ ORIG 3 2.017 17.330000 6.449066666666666666
000046 BUCHA FUSOR AL/AR/XD GEN G265 SP NBRGP0567FCZZ ORIG 3 2.410 20.620000 7.676666666666666666
000046 BUCHA FUSOR AL/AR/XD GEN G265 SP NBRGP0567FCZZ ORIG 5 3.768 19.420000 4.637600000000000000
000046 BUCHA FUSOR AL/AR/XD GEN G265 SP NBRGP0567FCZZ ORIG 10 7.762 20.000000 2.776160000000000000
000059 BUCHA DA UNIDADE DE LIMPEZA RC A2322289 ORIG 2 0.282 1.410000 0.846000000000000000
000059 BUCHA DA UNIDADE DE LIMPEZA RC A2322289 ORIG 2 0.393 1.270000 0.831600000000000000
000059 BUCHA DA UNIDADE DE LIMPEZA RC A2322289 ORIG 2 0.402 1.300000 0.850800000000000000
30/04/2013
Cesar Augusto
A minha sugestao seria para retirar do group by as itens que estao recebendo os comandos de agrupamento como o sum o count, etc.
OK Alex. Segui a sua sugestão e não deu certo..Como eu te disse, surge o erro de agrupamento no GROUP BY. Ou seja, retirei os itens que tem os comandos de agrupamento (T0.[PriceBefDi], T0.[VatSum], T0.Quantity) ficando apenas (T0.Dscription, T0.ItemCode) e deu a mensagem abaixo). Obrigado...
(Mensagem 8120, Nível 16, Estado 1, Linha 7
Column 'PCH1.PriceBefDi' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Mensagem 8120, Nível 16, Estado 1, Linha 7
Column 'PCH1.VatSum' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Mensagem 8120, Nível 16, Estado 1, Linha 7
Column 'PCH1.Quantity' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Mensagem 145, Nível 15, Estado 1, Linha 3
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
02/05/2013
Cesar Augusto
10/05/2013
Fabricio Sartori
Para fazer a conta do jeito que esta, o SQL tem que ter o campo individualizado(fazer parte do group by), ao invés de fazer a conta da forma que você esta fazendo trabalhe com a somatória dos campos como abaixo.
SELECT T0.[ItemCode], T0.[Dscription]AS Descricao, CONVERT(DECIMAL(10,0), SUM(T0.[Quantity])) AS QUANTIDADE, CONVERT(DECIMAL(10,3), SUM(T0.[VatSum])) AS VALOR_TOTAL, SUM(T0.[PriceBefDi]) AS IMPOSTO, ((sum(T0.[PriceBefDi])+(sum(T0.[VatSum])))/ sum(T0.[Quantity])) AS CUSTO_MEDIO FROM PCH1 T0 INNER JOIN OPCH T1 ON T0.DocEntry = T1.DocEntry WHERE t1.DocDate BETWEEN '2012-02-01 00:00:00.000' AND '2012-12-31 00:00:00.000' GROUP BY T0.Dscription, T0.ItemCode ORDER BY T0.ItemCode
14/05/2013
Cesar Augusto
Clique aqui para fazer login e interagir na Comunidade :)