2013-12-16 24 views
0

我遇到了一些麻烦,以实现以下结果。新列与rowtotals

这是我目前的表:

ID  NR  COST 
1  7001  100 
2  7001  50 
3  7020  800 
4  7020  190 
5  7050  205 
6  7050  80 

这是我想要实现表:

ID  NR  COST TOTAL 
1  7001  100  150 
2  7001  50  150 
3  7020  800  990 
4  7020  190  990 
5  7050  205  285 
6  7050  80  285 

所以我想创建一个额外的列,其中,相同的总和“ NR'栏是。

我已经尝试过使用SUM,但是接下来是成本列的总和。

这是我当前的查询:

SELECT distinct id, nr, cost, sum(cost) as total 
FROM customers 
group by id, nr, cost 
+0

向我们展示您的查询 – MusicLovingIndianGirl

+0

我已经更新我的职务与我的查询 – quintroo

回答

2

您可以使用子查询来计算总的每个NR,然后只需将其添加到原来的结果:

SELECT id, 
     nr, 
     cost, 
     A.subtotal AS TOTAL 
FROM table1 
     INNER JOIN (SELECT nr, 
          Sum(cost) AS subTotal 
        FROM table1 
        GROUP BY nr) AS A 
       ON table1.nr = A.nr 
+0

呃,你不需要外面的'GROUP BY'或者聚合... –

+0

好点@ Clockwork-Muse – jle

+0

Thx这个解决方案。然而,由于A没有工作,我需要删除'as',然后一切都很好。 – quintroo

1

您可以自行加入与汇总查询:

SELECT id, mytalbe.nr, cost, total 
FORM  mytable 
JOIN ON (SELECT nr, SUM(cost) AS total 
      FROM  mytable 
      GROUP BY nr) t ON t.nr = mytable.nr