Como Trabalhar com Tabelas Temporarias
10/10/2010
0
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!
Sergio Santos
Curtir tópico
+ 0
Responder
Posts
11/10/2010
João Vilar
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
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)