在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