2013-12-16 3 views
0

У меня возникли проблемы с достижением следующего результата.Новая колонка с серийными номерами

Это моя текущая таблица:

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

good point @ Clockwork-Muse – jle

+0

Thx для этого решения. Однако, поскольку A не работал, мне нужно было удалить «как», тогда все было в порядке. – 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 
Смежные вопросы