在sqlserver中获取数据之间的区别

时间:2015-01-23 08:49:36

标签: sql-server sql-server-2008


我在sqlserver 2008中有一个Student表,其中包含以下数据:

enter image description here

现在,当我提供两个日期(例如,从日期为'2015-1-1',到日期为'2015-3-1')我应该得到具体日期的总和的差异,而不是总和的总和日期之间

  

2015-3-1(2015-1-1的总和(总分)与2015-1-1的总和(总分)之间的差异)

即差值(总和(54,60),总和(60,58))134 - 118 = 16

提前致谢

2 个答案:

答案 0 :(得分:3)

使用此查询

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 

答案 1 :(得分:2)

使用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