Usuário com melhor resposta
SELECT SubTotais

Pergunta
-
Bom dia !!!
Temos no nosso sistema um Cadastro de Conta do Caixa
Conta Caixa Descricao
1 A vista
2 Conta Bradesco
3 Conta Itau
4 Cartao Credito
5 Cartao Debito
INSERT na tabela do caixa, tem sua respectiva Conta do Caixa informa. Eu queria fazer um SELECT com SubTotais por conta do Caixa.
Obrigado !!!
Respostas
-
-
-
Olá Davi,
É possível de fazer sim. Tente o script abaixo:
Code SnippetSELECT
ID, ContaCaixa, Valor,ISNULL
((
SELECT SUM(Valor) FROM Tb_Caixa AS TInt WHERETOut
.ContaCaixa = TInt.ContaCaixa AND TOut.ID >= TInt.ID),0) AS Saldo FROM Tb_Caixa AS TOutMinistrei um Webcast sobre dicas e truques de SQL Server e contemplei como fazer esse tipo de operação. Recomendo consultá-lo no link abaixo:
Dicas e Truques sobre consultas complexas no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!162.entry
[ ]s,
Gustavo
-
Olá Davi,
Segue um exemplo...
SELECT
a.[Conta Caixa], a.Descricao, SUM(b.CampoDeValor) as SubTotalValorFROM
[TabelaContaDeCaixa] as a INNER OUTER JOIN [TabelaDeReceita] as b ON a.[ContaCaixa] = b.[ContaCaixa] Group By a.[Conta Caixa], a.Descricao--Recomendável que você também utilize campos de data para fazer filtros por período.
--Substitua o nome das tabelas e dos campos pelos nomes reais.
Todas as Respostas
-
-
CREATE
TABLE Tb_Caixa (ID
INT IDENTITY(1, 1),ContaCaixa
INT,Valor
DECIMAL(18, 2))GO
-- Conta Caixa 1
INSERT
INTO Tb_Caixa VALUES (1, 120)INSERT
INTO Tb_Caixa VALUES (1, 630)INSERT
INTO Tb_Caixa VALUES (1, 470)INSERT
INTO Tb_Caixa VALUES (1, -380)-- Conta Caixa 2
INSERT
INTO Tb_Caixa VALUES (2, 180)INSERT
INTO Tb_Caixa VALUES (2, 320)INSERT
INTO Tb_Caixa VALUES (2, 423)INSERT
INTO Tb_Caixa VALUES (2, -350)-- Conta Caixa 3
INSERT
INTO Tb_Caixa VALUES (3, 210)INSERT
INTO Tb_Caixa VALUES (3, 240)INSERT
INTO Tb_Caixa VALUES (3, 180)INSERT
INTO Tb_Caixa VALUES (3, -480)-- Conta Caixa 4
INSERT
INTO Tb_Caixa VALUES (4, 100)INSERT
INTO Tb_Caixa VALUES (4, 250)INSERT
INTO Tb_Caixa VALUES (4, 800)INSERT
INTO Tb_Caixa VALUES (4, -500)GO
SELECT
* FROM Tb_Caixaqueria que a cada Conta Caixa, criasse uma linha de sub total ...
Obrigado
-
-
-
Olá Davi,
É possível de fazer sim. Tente o script abaixo:
Code SnippetSELECT
ID, ContaCaixa, Valor,ISNULL
((
SELECT SUM(Valor) FROM Tb_Caixa AS TInt WHERETOut
.ContaCaixa = TInt.ContaCaixa AND TOut.ID >= TInt.ID),0) AS Saldo FROM Tb_Caixa AS TOutMinistrei um Webcast sobre dicas e truques de SQL Server e contemplei como fazer esse tipo de operação. Recomendo consultá-lo no link abaixo:
Dicas e Truques sobre consultas complexas no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!162.entry
[ ]s,
Gustavo
-
Olá Davi,
Segue um exemplo...
SELECT
a.[Conta Caixa], a.Descricao, SUM(b.CampoDeValor) as SubTotalValorFROM
[TabelaContaDeCaixa] as a INNER OUTER JOIN [TabelaDeReceita] as b ON a.[ContaCaixa] = b.[ContaCaixa] Group By a.[Conta Caixa], a.Descricao--Recomendável que você também utilize campos de data para fazer filtros por período.
--Substitua o nome das tabelas e dos campos pelos nomes reais.
-