SQL查询加入和分组表

时间:2017-06-18 23:15:23

标签: mysql sql-server-2008

选择table1.id,(table1.total_item-table2.requested)作为items_left 来自table1,table2 table2.year = 2015年 group by table1.id

我正在使用SQL Server 2008 .. 我的代码有什么问题?它不能是身份证号码中的群组,

我想对table1中的所有单个table1.items求和,并将表2中所有单独的table2.requested求和 减去剩余的项目,因为我将其命名为items_left,并按table1.id

对其进行分组 像这样......

0.  id   items_left  year
1.   1    3        2015
2.   5    10       2015
3.   3    4        2015

这是上面那段代码的输出...... 有一个重复的ID,我不能把它分组

0.  id  items_left
1.   1    1
2.   1    1
3.   1    2
4.   5    5
5.   3    2
6.   5    5
7.   3    2

我想要这样的输出..请先生/我帮助我..

像这样......

0. id items_left  year
1.   1    3       2015
2.   5    10      2015
3.   3    4       2015

1 个答案:

答案 0 :(得分:0)

你错过了" sum()"为第二场;还缺少加入条件:

SELECT tab1.id, sum(tab1.total_item - ifnull(tab2.requested,0)) AS items_left
FROM tab1
LEFT JOIN tab2 ON tab1.id = tab2.??
WHERE tab2.year = 2015
GROUP BY tab1.id