Como criar uma view que some valores
16/12/2004
0
Tenho uma tabela chamada CONTAS e outra chamada MOVCAIXA.
Gostaria de saber como criar uma view apresentando os dados
REF, DESCRICAO da tabela CONTAS somando o campo VALOR da tabela MOVCAIXA de todos os registros coincidentes.
Isso é possível
Agradeço desde já
Marcos
Prmas
Posts
17/12/2004
Vinicius2k
Sim. É possível... seria um código parecido com este :
CREATE VIEW MINHA_VIEW( REF, DESCRICAO, VALOR_TOTAL) AS select C.REF, C.DESCRICAO, sum(M.VALOR) from CAIXA C left join MOVCAIXA M on (C.REF = M.REF) group by 1,2;
Desta forma são listadas as contas e os valores totais para elas, mas se a conta não tiver movimento, o valor total será nulo...
Se desejar que se a conta não tiver movimento, ela nem seja listada, substitua o ´[b:9acf6aa8e5]left join[/b:9acf6aa8e5]´ por ´[b:9acf6aa8e5]inner join[/b:9acf6aa8e5]´.
Espero ter ajudado...
T+
17/12/2004
Prmas
Obrigado pela ajuda, mas ainda não funcionou:
Por favor veja qual o erro no código abaixo porque só funciona se eu não usar o SUM().
[list:5d29749d55]
CREATE VIEW VWCXITENS(
REF,
CREDITO,
DEBITO,
GERENCIAL,
CONTA,
TOTAL)
AS
select
CT.REF,
CT.CONTACREDITO,
CT.CONTADEBITO,
CT.CONTAGERENCIAL,
CX.REFCONTA,
SUM(CX.VALOR)
from Contas CT
inner join CaixaItens CX on (CT.REF = CX.REFCONTA)
[/list:u:5d29749d55]
Agradeço desde já
17/12/2004
Vinicius2k
Vc está usando uma função de agregação (SUM), então é necessário o agrupamento (GROUP BY), assim como no código que lhe passei...
Falta isto :
... group by CT.REF, CT.CONTACREDITO, CT.CONTADEBITO, CT.CONTAGERENCIAL, CX.REFCONTA
ou
... group by 1, 2 , 3, 4, 5
Só não deve constar no agrupamento a coluna do SUM.
OK?
T+
Clique aqui para fazer login e interagir na Comunidade :)