Jump to content
Fórum Script Brasil
  • 0

GROUP BY


Guest --aLEXANDRE --

Question

Guest --aLEXANDRE --

Ola galera! sou novo em programação e preciso de uma ajuda.

estou usando delphi 7

tabelas *.dbf

e os componentes ado para consexão com as mesmas.

preciso mostrar em relatório as minhas vendas de forma sintetica.

hoje consigo ter m meu relatório o seguinte

CADMOV.TIPO_OPER CADMOV.NOTA_FISC CADMOV.TOTAL_NOTA VENDEDOR.NOME

VPS 12345 100,00 ALEXANDRE

VPS 12345 100,00 ALEXANDRE

VPS 54321 200,00 JOAO

prem preciso que no meu relatório apareça da seguinte forma

CADMOV.TIPO_OPER CADMOV.NOTA_FISC CADMOV.TOTAL_NOTA VENDEDOR.NOME

VPS 12345 100,00 ALEXANDRE

VPS 54321 200,00 JOAO

estou usando o seguinte codigo para tentar agrupar, porem não esta dando certo

SELECT First(CADMOV.data_mov) AS PrimeiroDedata_mov, CADMOV.nota_fisc, First(CADMOV.Total_nota) AS PrimeiroDeTotal_nota, VENDEDOR.NOME

FROM (CADMOV INNER JOIN TIPOS ON CADMOV.tipo_oper = TIPOS.TIPO) INNER JOIN vendedor ON CADMOV.Cod_vend = vendedor.COD_vend

GROUP BY First(CADMOV.data_mov), CADMOV.nota_fisc

aparece a mensagem sql: group by clause or missing is invalid

o que eu faço?

me ajudem por favor

Edited by Micheus
Não observação do item 3.7 das regras do forum - NÃO digite em caixa alta (1º aviso)
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Antes de mais nada, tente observar as regras do forum e até por questão de visualização, evite digitar todo o texto em caixa ALTA.

hoje consigo ter m meu relatório o seguinte

CADMOV.TIPO_OPER CADMOV.NOTA_FISC CADMOV.TOTAL_NOTA VENDEDOR.NOME

VPS 12345 100,00 ALEXANDRE

VPS 12345 100,00 ALEXANDRE

VPS 54321 200,00 JOAO

prem preciso que no meu relatório apareça da seguinte forma

CADMOV.TIPO_OPER CADMOV.NOTA_FISC CADMOV.TOTAL_NOTA VENDEDOR.NOME

VPS 12345 100,00 ALEXANDRE

VPS 54321 200,00 JOAO

Alexandre, foi descuido seu ou você quer realmente listar apenas um dos registros.

Veja que você fala em AGRUPAR, mas se olharmos seu exemplo, no resultado que você pretende obter o ALEXANDRE tem TOTAL_NOTA = 100,00, enquanto que, se fosse para agrupar baseado no resultado da primeira tabela, deveria ser 200,00.

estou usando o seguinte codigo para tentar agrupar, porem não esta dando certo

SELECT First(CADMOV.data_mov) AS PrimeiroDedata_mov, CADMOV.nota_fisc, First(CADMOV.Total_nota) AS PrimeiroDeTotal_nota, VENDEDOR.NOME

FROM (CADMOV INNER JOIN TIPOS ON CADMOV.tipo_oper = TIPOS.TIPO) INNER JOIN vendedor ON CADMOV.Cod_vend = vendedor.COD_vend

GROUP BY First(CADMOV.data_mov), CADMOV.nota_fisc

Entretanto, no seu SELECT, você faz referência a FIRST, o que sugere que você quer realmente pegar apenas o 1ª registro, e neste caso, não faz sentido o uso de GROUP BY, já FIRST faz retornar apenas a primeira linha do resultado da consulta.

Está confuso, não acha?!

aparece a mensagem sql: group by clause or missing is invalid
De qualquer forma, observe que você não utilizou qualquer função de agregação, tal como SUM, COUNT, MAX. Também, quando da utilização de GROUP BY, nesta cláusula devem constar todos os campos que estão definidos no SELECT menos os que correspondem a função de agregação.

Por exemplo:

SELECT CADMOV.data_mov, CADMOV.nota_fisc, VENDEDOR.NOME, SUM(CADMOV.Total_nota) AS Total_nota

FROM (CADMOV INNER JOIN TIPOS ON CADMOV.tipo_oper = TIPOS.TIPO) INNER JOIN vendedor ON CADMOV.Cod_vend = vendedor.COD_vend

GROUP BY CADMOV.data_mov, CADMOV.nota_fisc, VENDEDOR.NOME

Link to comment
Share on other sites

  • 0
Guest --ALEXANDRE --

Valeu pela dica. Realmente eu me enrrolei um pouco pra explicar o que eu estava precisando, mas a sua reposta foi muito util. Assim q puder eu coloco o que eu estava querendo e o que eu fiz após a sua dica. Obg!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...