Jump to content
Fórum Script Brasil
  • 0

Agrupamento Com O Interbase


Alisson

Question

olá, estou com sério problema quanto ao agrupamento num sql.

Esse SQL tem que ter um join entre as tabelas Item e Tipo_Item e agrupados pela Descrição do Tipo do Ítem. Detalhe, o campo descrição está na também Tipo_Item, mas já criei uma nova coluna na também Item para a descrição, creio que não deva interferir.

Mas enfim.. só dá erro, eu estava tentando esse código, mas não vai, diz: "invalid reference colunm", como corrigir essa referência inválida? Ou COMO devo refazer esse SQL?

SELECT ITEM.Titulo, ITEM.Tipo_Item, Sum(Cod_Item)Cod_Item, TIPO_ITEM.Descricao from ITEM, TIPO_ITEM

WHERE ITEM.Tipo_Item = TIPO_ITEM.Cod_Tipo_Item

group by Cod_Item

Obrigado!

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Alisson, por regra (digamos assim) na cláusula ORDER BY você tem que incluir todos os campos constante da cláusula SELECT que não sejam funções de agrupamento. Assim, seu select deveria ficar como abaixo, só não sei se é o que você quer como resultado.

SELECT ITEM.Titulo, ITEM.Tipo_Item, Sum(Cod_Item)Cod_Item, TIPO_ITEM.Descricao 
from ITEM, TIPO_ITEM
WHERE ITEM.Tipo_Item = TIPO_ITEM.Cod_Tipo_Item
group by ITEM.Titulo, ITEM.Tipo_Item, TIPO_ITEM.Descricao 

Está um pouco estranho você somar o Cod_Item, é isto mesmo? Não seria contar - COUNT

Abraços

Link to comment
Share on other sites

  • 0

Além do que o Micheus falou tem outras coisas

Eu acho que seu problema está no seu SUM

Ele está assim

SUM(COD_ITEM) COD_ITEM;

BOM A PRIMEIRA COISA é que está FALTANDU A REFERENCIA DA TABELA que CONTAM O CAMPO COD_ITEM não é???

SUM(NOME_DA_TABELA.COD_ITEM)

A segunda é que acho que o que vocêr quer fazer com o SUM dessa maneira é que o resultado

da soma apareça numa coluna também chamada COD_ITEM ao invés de uma coluna chamada

SUM não é????

se for isso deveria ser

SUM(NOME_DA_TABELA.COD_ITEM) AS COD_ITEM

Bom se eu entendi o que você quer acho que é isso

junte o que o Micheus falou comigo e tenta aí

Agora vi e também concordo: Para que o SUM não COD_ITEM

Se você só quer agrupar por descrição tenta isso

SELECT ITEM.Titulo, ITEM.Tipo_Item, ITEM.Cod_Item, TIPO_ITEM.Descricao

from ITEM, TIPO_ITEM

WHERE ITEM.Tipo_Item = TIPO_ITEM.Cod_Tipo_Item

group by ITEM.Titulo, ITEM.Tipo_Item, ITEM.Cod_Item, TIPO_ITEM.Descricao

Acho que isso faz não?

Edited by Churc
Link to comment
Share on other sites

  • 0
SUM(COD_ITEM)COD_ITEM;

BOM A PRIMEIRA COISA é que está FALTANDU A REFERENCIA DA TABELA que CONTAM O CAMPO COD_ITEM não é???

SUM(NOME_DA_TABELA.COD_ITEM)

rodrigo, apenas completando a informação, a referência a tabela só é obrigatória caso o campo exista em mais que uma tabela informada na cláusula FROM.

A SEGUNDA é que ACHO que O que você QUER FAZER COM O SUM DESSA MANEIRA é que O RESULTADO DA SOMA APAREÇA NUMA COLUNA também CHAMADA COD_ITEM AO invés DE UMA COLUNA CHAMADA SUM não é????

SE FOR ISSO DEVERIA SER

SUM(NOME_DA_TABELA.COD_ITEM) AS COD_ITEM

esta observação é válida, mas o uso do AS não é obrigatório, ao menos para a maioria dos bancos de dados.

Abraços

Link to comment
Share on other sites

  • 0

primeiramente queria agradecer a atenção dos 2.....

bom, quanto aos sqls que vocês m passaram, ambos funcionaram (mas ainda não chegaram ao meu objetivo!)

na verdad, não sei dizer/explicar qual comando devo utilizar, (SUM, COUNT, enfim...) o que preciso é o cguint:

Esse SQL estará numa IBQQUERY, que será responsável por um tipow d relatório.

Nesse relatório, (Rel. Ítem - Por Tipo) deverá ficar assim:

=================

LIVRO

- xxx

-xxx

-xxx

REVISTA

- xxx

-xxx

-xxx

===============

Entenderam? só poderá mostrar 1 ocorrência de kd tipo. E, no sql que estou utilizandu ele aparece várias vz (conforme a qtde d registros que possui, obviament). só pra confirmar, o sql que to utilizandu é este:

SELECT ITEM.Titulo, ITEM.Tipo_Item, ITEM.Cod_Item, TIPO_ITEM.Descricao

from ITEM, TIPO_ITEM

WHERE ITEM.Tipo_Item = TIPO_ITEM.Cod_Tipo_Item

group by TIPO_ITEM.Descricao, ITEM.Titulo, ITEM.Tipo_Item, ITEM.Cod_Item

+ uma vez obrigado....

Link to comment
Share on other sites

  • 0
bom, quanto aos sqls que vocês m passaram, ambos funcionaram (mas ainda não chegaram ao meu objetivo!)

na verdad, não sei dizer/explicar qual comando devo utilizar, (SUM, COUNT, enfim...) o que preciso é o cguint:

Esse SQL estará numa IBQQUERY, que será responsável por um tipow d relatório.

Nesse relatório, (Rel. Ítem - Por Tipo) deverá ficar assim:

=================

LIVRO

- xxx

-xxx

-xxx

REVISTA

- xxx

-xxx

-xxx

===============

Entenderam? só poderá mostrar 1 ocorrência de kd tipo. E, no sql que estou utilizandu ele aparece várias vz (conforme a qtde d registros que possui, obviament).

Então, se você agrupará por tipo e listará o item, apenas estes dois campos deveriam estar na cláusula SELECT - mais nada. Isso deverá gerar linhas onde o tipo aparecerá várias vezes, mas o item apenas um para cada tipo.

No relatório, ao utilizar quebra pelo tipo, você mostrará o tipo apenas uma vez seguido pelos itens.

Abraços

Link to comment
Share on other sites

  • 0

na verdad haverá + campos além do tipo do ítem e do título, mas isso não interfere no resto eu acredito, ou não?

Alisson, você pode incluir quantos campos quizer, entretando isso aumenta o risco de gerar linhas duplicadas para os itens principais que você pretende mostrar - você deve saber que campos podem gerar tal "problema". Apenas fazendo a consulta completa você terá uma noção exata de como ficará o resultado final.

enfim... você poderia ser um pouco + "prático"? estou trabalhando com o rave report! Abraço, obrigado!
acho que não vai dar porque eu não utilizo Rave. Espero que outro colega possa lhe ajudar neste sentido.

Abraços

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
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...