none
Erro no Select com Group By RRS feed

  • Pergunta

  • Bom dia

    Preciso de um relatório que totalize as vendas por código de item. O código abaixo apresenta erro quando utilizo GROUP BY  porém, se tiro esta opção não consigo sumarizar a qtd vendida e apresentar apenas a lina com o código e o total.

    Mensagem 8120, Nível 16, Estado 1, Linha 3
    A coluna 'it-nota-fisc.dt-emis-nota' é inválida na lista de seleção porque não está contida em uma função de agregação nem na cláusula GROUP BY.

    SELECT
       [it-nota-fisc].[dt-emis-nota]
      ,[it-nota-fisc].[nr-nota-fis]
      ,item.[desc-item]
      ,item.[codigo-refer]
      ,[it-nota-fisc].[qt-faturada-1]
      ,[it-nota-fisc].[vl-preuni]
      ,[it-nota-fisc].[vl-tot-item]
      ,repres.[nome-abrev]
      ,repres.cgc as cgcvendedor
     
    FROM
      [it-nota-fisc]
      INNER JOIN [nota-fiscal]
        ON [it-nota-fisc].[cod-estabel] = [nota-fiscal].[cod-estabel]
     AND [it-nota-fisc].serie = [nota-fiscal].serie
     AND [it-nota-fisc].[nr-nota-fis] = [nota-fiscal].[nr-nota-fis]
     
      INNER JOIN item
        ON [it-nota-fisc].[it-codigo] = item.[it-codigo]
      INNER JOIN repres
        ON [nota-fiscal].[cod-rep] = repres.[cod-rep]
    and [it-nota-fisc].[dt-emis-nota] >= '30-06-2014'
    and [it-nota-fisc].[dt-emis-nota] <=  '05-07-2014'
    and item.[IT-CODIGO] like 'AOC' + '%'
    and   ([it-nota-fisc].[nat-operacao] like concat('5101','%')
      or   [it-nota-fisc].[nat-operacao] like concat('5102','%')
      or   [it-nota-fisc].[nat-operacao] like concat('5108','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6101','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6102','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6107','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6108','%')
      or   [it-nota-fisc].[nat-operacao] like concat('5405','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6405','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6404','%')
      or   [it-nota-fisc].[nat-operacao] like concat('5910','%')
      or   [it-nota-fisc].[nat-operacao] like concat('5119','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6119','%')
      or   [it-nota-fisc].[nat-operacao] like concat('6910','%'))
    GROUP BY [it-nota-fisc].[it-codigo]
    ORDER BY [it-nota-fisc].[dt-emis-nota]

    Grato Pela ajuda

    sexta-feira, 11 de julho de 2014 14:34

Respostas

  • Bom dia sr. Newton,

    Na verdade o SQL SERVER vai reclamar de todas as colunas que não estão utilizando uma função agregadora (ex: Sum, Count, Max, Min, etc) ou não estão contidas no GROUP BY, então adicione funções agregadoras nas colunas que desejar (Sum na coluna de quantidade vendida por exemplo) e adicione o restante no Group By.

    Link de um artigo para maiores esclarecimentos:

    http://www.devmedia.com.br/desvendando-a-clausula-group-by-artigo-sql-magazine-47/8082

    Boa sorte.

    • Marcado como Resposta Newton Costa-BA segunda-feira, 14 de julho de 2014 12:31
    sexta-feira, 11 de julho de 2014 19:15