Instrução SQL
Olá Pessoal,
ESTOU UTILIZANDO INTERBASE, TENHO 12 TABELAS COM OS MESMOS CAMPOS (1 tab PARA CADA MES). PRECISO CRIAR 1 CONSULTA QUE APAREÇA O NUMERO, NOME E O VALOR ANUAL (SOMATÓRIA) QUE CADA CLIENTE GASTOU NA EMPRESA.
DETALHE SO APARECERÁ NESTE RELATÓRIO OS CLIENTES QUE ESTIVEREM NA TABELA CCR0ASSO
SEGUE A INSTRUÇÃO:
SELECT A.FCONTA,
A.FNOME,
SUM(B.FVALOR)TOTAL
FROM CCR0ASSO A,
JRJAN B
WHERE A.FCONTA = B.FCONTA AND A.FCODLANC >=994 AND <= 995
GROUP BY
A.FCONTA
COMO FAÇO PARA OS OUTROS MESES ?
Um Abraço
Renato
[b:c8883aecb7]Título editado: ´INSTRUÇÃO SQL´[/b:c8883aecb7]
Favor não escrever o título utilizando caixa alta. Por favor, leia as regras de conduta.
ESTOU UTILIZANDO INTERBASE, TENHO 12 TABELAS COM OS MESMOS CAMPOS (1 tab PARA CADA MES). PRECISO CRIAR 1 CONSULTA QUE APAREÇA O NUMERO, NOME E O VALOR ANUAL (SOMATÓRIA) QUE CADA CLIENTE GASTOU NA EMPRESA.
DETALHE SO APARECERÁ NESTE RELATÓRIO OS CLIENTES QUE ESTIVEREM NA TABELA CCR0ASSO
SEGUE A INSTRUÇÃO:
SELECT A.FCONTA,
A.FNOME,
SUM(B.FVALOR)TOTAL
FROM CCR0ASSO A,
JRJAN B
WHERE A.FCONTA = B.FCONTA AND A.FCODLANC >=994 AND <= 995
GROUP BY
A.FCONTA
COMO FAÇO PARA OS OUTROS MESES ?
Um Abraço
Renato
[b:c8883aecb7]Título editado: ´INSTRUÇÃO SQL´[/b:c8883aecb7]
Favor não escrever o título utilizando caixa alta. Por favor, leia as regras de conduta.
Rfp170
Curtidas 0
Respostas
Afarias
18/03/2005
|ESTOU UTILIZANDO INTERBASE, TENHO 12 TABELAS COM OS MESMOS
|CAMPOS (1 tab PARA CADA MES).
me cheira algo bem ´inconsistente´ com o modelo relacional
|COMO FAÇO PARA OS OUTROS MESES ?
repita a consulta para cada mês. se quer todos juntos vc terá q fazer um grande UNION -- vc pode lançar mão de VIEWS de STORED PROCS mas o resultado é q terá um sistema sempre difícil de manter e com baixa performance.
A melhor solução para vc (creio eu) é rever seu modelo de dados.
T+
|CAMPOS (1 tab PARA CADA MES).
me cheira algo bem ´inconsistente´ com o modelo relacional
|COMO FAÇO PARA OS OUTROS MESES ?
repita a consulta para cada mês. se quer todos juntos vc terá q fazer um grande UNION -- vc pode lançar mão de VIEWS de STORED PROCS mas o resultado é q terá um sistema sempre difícil de manter e com baixa performance.
A melhor solução para vc (creio eu) é rever seu modelo de dados.
T+
GOSTEI 0
Rfp170
18/03/2005
CONSEGUI FAZER DESTA FORMA:
SELECT A.FCONTA, A.FNOME, SUM(B.FVALOR)TOTAL
FROM CCR0ASSO A,
JRJAN B
WHERE FCODLANC>=´994´ AND FCODLANC<=´995´ AND A.FCONTA=B.FCONTA
GROUP BY A.FCONTA, A.FNOME
UNION
SELECT A.FCONTA, A.FNOME, SUM(B.FVALOR)TOTAL
FROM CCR0ASSO A,
JRFEV B
WHERE FCODLANC>=´994´ AND FCODLANC<=´995´ AND A.FCONTA=B.FCONTA
GROUP BY A.FCONTA, A.FNOME
MAS COMO FAÇO PARA COLOCAR EM COLUNAS A SOMATÓRIA DOS MESES (CONTA,NOME, TOTJANEIRO, TOTFEVEREIRO) POIS ESTA CRIANDO LINHA PARA CADA MES.
SELECT A.FCONTA, A.FNOME, SUM(B.FVALOR)TOTAL
FROM CCR0ASSO A,
JRJAN B
WHERE FCODLANC>=´994´ AND FCODLANC<=´995´ AND A.FCONTA=B.FCONTA
GROUP BY A.FCONTA, A.FNOME
UNION
SELECT A.FCONTA, A.FNOME, SUM(B.FVALOR)TOTAL
FROM CCR0ASSO A,
JRFEV B
WHERE FCODLANC>=´994´ AND FCODLANC<=´995´ AND A.FCONTA=B.FCONTA
GROUP BY A.FCONTA, A.FNOME
MAS COMO FAÇO PARA COLOCAR EM COLUNAS A SOMATÓRIA DOS MESES (CONTA,NOME, TOTJANEIRO, TOTFEVEREIRO) POIS ESTA CRIANDO LINHA PARA CADA MES.
GOSTEI 0