Array
(
)

Como Trabalhar com Tabelas Temporarias

Sergio Santos
   - 10 out 2010


Tenho um sistema que possui uma codificação de Contas, onde a cada lançamento é Eu devo colocar o tipo de Conta. Ex. Aluguel, Vale, Despesas, Manutenção, Compras, Impostos.

O sistema em questão é um sistema de Controle de Imobiliaria, onde tenho Contas q Recebo e Contas que Pago.

Eu estou precisando gerar uma tabela, onde no final do Periodo, Eu faça um levantamento do Saldo entre as Contas, de modo que Eu Some Tudo o q Recebi de Aluguel e Tudo o que Paguei de Aluguel Aos proprietários apurando assim o saldo.

As tabelas são.

Cadastro de Contas = TABCONTA (IDCONTA, DESCRICAO_CONTA)

Contas a Receber = CONTAREC (IDLANCTOREC, DATALCTO_RECTO, CODCONTA, VALOR)

Contas a Pagar   = CONTAPAG (IDLANCTOPAG, DATALCTO_PAGTO, CODCONTA,VALOR)

Select IDCONTA,DESCRICAO_CONTA,
(select SUM(R.VALOR) from CONTAREC R where R.CODCONTA= T.IDCONTA) AS ENTRADAS,

(select SUM(R.VALOR) from CONTPAG P where P.CODCONTA= T.IDCONTA) AS SAIDAS,

from TABCONTA T

// So consigo fazer até aqui.

Preciso fazer um filtro onde se uma determinada Conta Não tiver movimentação nem de entrada nem de saida não apareceça

E preciso gerar uma tabela Temporaria.

Desde já agradeço!

João Vilar
   - 11 out 2010

Não sei se percebi bem a sua dúvida     Para criar tabelas temporárias:

Create Table #NomeTabela

(    Id int,    designacao varchar(100) )     depois a forma de utilizar é igual     Exemplo:   INSERT INTO #NomeTabela (id, Designacao) SELECT id, Designacao FROM tabela (Nolock)     O [#] (1 cardinal)  significa que é uma temporária de sessão, esta tabela só existe enquando a sessão estiver activa.   Se criar a tabela com [##] (2 cardinais) a temporária fica activa enquanto houver sessões activas.     SELECT IDCONTA, DESCRICAO_CONTA, Entradas.Valor, Saidas.Valor
FROM TABCONTA T   LEFT OUTER JOIN (                                 SELECT CODCONTA, SUM(VALOR) Valor                                 FROM CONTAREC                                 GROUP BY CODCONTA                              ) Entradas ON (Entradas.CODCONTA= T.IDCONTA)   LEFT OUTER JOIN (                                 SELECT CODCONTA, SUM(VALOR) Valor                                 FROM CONTPAG P                                 GROUP BY CODCONTA                             ) Saidas ON (Saidas.CODCONTA= T.IDCONTA)   WHERE not Entradas.Valor is null      or not Saidas.Valor is null       Vilarjoaopaulo@gmail.com

Sergio Santos
   - 22 out 2010

blz. Valeu!