Como criar uma view que some valores

16/12/2004

0

Olá pessoal,

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

Prmas

Responder

Posts

17/12/2004

Vinicius2k

Colega,

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+


Responder

17/12/2004

Prmas

Olá Vinicius,

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á


Responder

17/12/2004

Vinicius2k

Marcos,

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+


Responder

17/12/2004

Prmas

Valeu Vinicius,

Funcionou perfeitamente!!!

Um abraço

Marcos


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar