Ir para conteúdo
Fórum Script Brasil
  • 0

Agrupamento Com O Interbase


Alisson

Pergunta

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 para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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?

Editado por Churc
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...