在sql server中获取数据之间的差异
Getting difference between data in sqlserver
我的 sqlserver 2008 中有一个学生 table,其数据如下:
现在,当我提供两个日期(例如,从日期为“2015-1-1”和到日期为“2015-3-1”)时,我应该得到特定日期的总和差,而不是总和日期之间的总数
Difference between(sum(total marks) for 2015-3-1 and sum(total marks) for 2015-1-1)
即差值(sum(54,80), sum(60,58)) 为 134 - 118 = 16
提前致谢
使用这个查询
DECLARE @result AS INTEGER
SET @result = ISNULL((SELECT SUM(TotalMarks) FROm Student WHERE Date = '2015-1-1'), 0) -
ISNULL((SELECT SUM(TotalMarks) FROm Student WHERE Date = '2015-3-1'), 0)
SELECT @result
使用 Conditional Aggregate
执行此操作。
SELECT Isnull(Sum(CASE WHEN Date = '2015-1-1' THEN TotalMarks ELSE 0 END), 0) -
Isnull(Sum(CASE WHEN Date = '2015-3-1' THEN TotalMarks ELSE 0 END), 0)
FROM Student
我的 sqlserver 2008 中有一个学生 table,其数据如下:
现在,当我提供两个日期(例如,从日期为“2015-1-1”和到日期为“2015-3-1”)时,我应该得到特定日期的总和差,而不是总和日期之间的总数
Difference between(sum(total marks) for 2015-3-1 and sum(total marks) for 2015-1-1)
即差值(sum(54,80), sum(60,58)) 为 134 - 118 = 16
提前致谢
使用这个查询
DECLARE @result AS INTEGER
SET @result = ISNULL((SELECT SUM(TotalMarks) FROm Student WHERE Date = '2015-1-1'), 0) -
ISNULL((SELECT SUM(TotalMarks) FROm Student WHERE Date = '2015-3-1'), 0)
SELECT @result
使用 Conditional Aggregate
执行此操作。
SELECT Isnull(Sum(CASE WHEN Date = '2015-1-1' THEN TotalMarks ELSE 0 END), 0) -
Isnull(Sum(CASE WHEN Date = '2015-3-1' THEN TotalMarks ELSE 0 END), 0)
FROM Student