Sql server 2008 连接条件检索不需要的答案
我有两张桌子,如下所示Sql server 2008 连接条件检索不需要的答案,sql-server-2008,Sql Server 2008,我有两张桌子,如下所示 select Event_ID,[Gross Salary] from tblEar where Event_ID=14 结果: Event_ID Gross Salary 14 56128 14 51984 14 42028 EventId Order Date Amount 14 10/10/2011 20000 14 10/10/2011 20000 14 20/03/2012 2500
select Event_ID,[Gross Salary] from tblEar where Event_ID=14
结果:
Event_ID Gross Salary
14 56128
14 51984
14 42028
EventId Order Date Amount
14 10/10/2011 20000
14 10/10/2011 20000
14 20/03/2012 2500
14 02/04/2012 -50000
以及:
结果:
Event_ID Gross Salary
14 56128
14 51984
14 42028
EventId Order Date Amount
14 10/10/2011 20000
14 10/10/2011 20000
14 20/03/2012 2500
14 02/04/2012 -50000
如果我在这两个表上写一个连接语句来获取它,那就是检索重复的记录。我使用了Distinct,但没有得到肯定的结果
select DISTINCT tba.[Order Date],ISNULL(tba.Amount,0),ISNULL(te.[Gross Salary],0) from tblBudget tba
join
tblEar te on tba.EventId=te.Event_ID where tba.EventId=14
我得到了以下答案:
Order Date (No column name) (No column name)
2011-10-10 20000.00 42028.00
2011-10-10 20000.00 51984.00
2011-10-10 20000.00 56128.00
2012-03-20 2500.00 42028.00
2012-03-20 2500.00 51984.00
2012-03-20 2500.00 56128.00
2012-04-02 -50000.00 42028.00
2012-04-02 -50000.00 51984.00
2012-04-02 -50000.00 56128.00
有谁能告诉我获取准确数据的方法吗?我想你应该将数据分组并汇总金额:
SELECT tba.[Order Date], SUM(tba.Amount), SUM(te.[Gross Salary])
FROM tblBudget tba
JOIN tblEar te on tba.EventId = te.Event_ID
WHERE tba.EventId = 14
GROUP BY tba.[Order Date]
我已经格式化了您的问题,以便可以阅读查询和结果。我还根据结果切换了前两个查询的顺序,因为结果集似乎与查询更匹配。但你还没有告诉我们你期望的结果。