Labels

Apache Hadoop (3) ASP.NET (2) AWS S3 (2) Batch Script (3) BigQuery (21) BlobStorage (1) C# (3) Cloudera (1) Command (2) Data Model (3) Data Science (1) Django (1) Docker (1) ETL (7) Google Cloud (5) GPG (2) Hadoop (2) Hive (3) Luigi (1) MDX (21) Mongo (3) MYSQL (3) Pandas (1) Pentaho Data Integration (5) PentahoAdmin (13) Polybase (1) Postgres (1) PPS 2007 (2) Python (13) R Program (1) Redshift (3) SQL 2016 (2) SQL Error Fix (18) SQL Performance (1) SQL2012 (7) SQOOP (1) SSAS (20) SSH (1) SSIS (42) SSRS (17) T-SQL (75) Talend (3) Vagrant (1) Virtual Machine (2) WinSCP (1)

Friday, December 16, 2011

SQL to get Running Total of Transactions

The below query helps the user to get the running total of transaction based on date, consider below tables for example:



Step 1: Create a view with following query (Query 1):

USE [Demo]
GO
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE
VIEW [dbo].[vwFactTransactionAgg]
AS
SELECT
TOP (100) PERCENT CustomerKey, DateKey, SUM(Amount) AS Amount
FROM dbo.FactTransaction
GROUP BY CustomerKey, DateKey
ORDER BY CustomerKey, DateKey
GO


Step 2: Execute the below Query



SELECT
T.CustomerKey ,
T.DateKey ,
T.Amount ,
RT.RunningTotal
FROM vwFactTransactionAGG T
CROSS APPLY (SELECT SUM(Amount) AS runningTotal
FROM vwFactTransactionAgg
WHERE DateKey <= t.Datekey AND CustomerKey = t.CustomerKey
) AS RT
ORDER BY T.CustomerKey, DateKey


No comments:

Post a Comment