2012-08-07 90 views
2

我正在学习SQL,因为我在一个项目上工作,并希望得到以下帮助。我也是相当新的stackoverflow,所以我道歉,如果我的格式是关闭的:SQL在同一张表上的多个连接和总和

我有一个表的列日期,组,人,金额。对于我每天都要为每个人提供的数量和他们所在的组的条目,所以一行看起来像:

Date Group Person Amount 
8/7/2012  A  Steve  10 

我想写将返回所有的总和声明两个不同的日子。

我:

Select t1.group,sum(t1.amount),sum(t2.amount) 
    From table t1, table t2 
Where t1.group=t2.group AND t1.date=current_date-1 AND t2.date=current_date-2 
Group by t1.group 

我没有得到任何错误,但两个和来自不同的我所得到的,如果我只是做

Select date,sum(amount) From table Group by date 

,并期待在有问题的日子。

+0

看来你是使用MS SQL Server中,更新您的标记,这样的问题是更容易找到别人 – Yaroslav 2012-08-07 19:43:25

回答

2

你为什么要加入两张桌子?

我想你想:

Select t.group, 
     sum(case when t.date = current_date - 1 then t.amount end), 
     sum(case when t.date = current_date - 2 then t.amount end) 
From table t 
Group by t.group 
+0

完美,谢谢! – jasonm 2012-08-07 19:56:41