当前位置: 代码迷 >> Sql Server >> 求子表总计
  详细解决方案

求子表总计

热度:15   发布时间:2016-04-24 09:40:10.0
求子表合计
主表    table1

 nameid               name

 1                          张

2                          王

3                           李

子表         table2


nameid                   money

1                                   30
2                                   50
1                                   20
2                                   10


结果           nameid                name              moneysum
                    1                             张                         50
                    2                              王                        60
                    3                             李                          0


------解决思路----------------------
select a.nameid, a.name, sum(b.money) as all
from table1 a left join table2 b on a.nameid = b.nameid
group by a.nameid, a.name

------解决思路----------------------
SELECT A.*,B.moneysum FROM table1 AS A INNER JOIN (SELECT  nameid,SUM(MONEY) AS moneysum from table2 group by nameid) as b on a.nameid=b.nameid

------解决思路----------------------
SELECT a.nameid, a.name, SUM(b.money)moneysum
FROM table1 T1
LEFT JOIN table2 T2 ON T1.nameid = T2.nameid
GROUP BY T1.nameid, T1.name

------解决思路----------------------
SELECT T1.nameid, T1.name, SUM(T2.money)moneysum
FROM table1 T1
LEFT JOIN table2 T2 ON T1.nameid = T2.nameid
GROUP BY T1.nameid, T1.name
  相关解决方案