Как суммировать поля в разных группах в T-SQL - PullRequest
0 голосов
/ 21 октября 2011

У меня есть несколько таблиц, которые я left join, и предложение Group By, которое группирует несколько столбцов.

Однако есть один столбец, который group-by 'редактируется, но остается отличным (productNumber).

Мне нужно суммировать количество столбец ниже:

salesID  historyID  productID  name  productNumber  quantity
      1        123          1     A         234554        10
      1        123          1     A         666666        10

Я хочу только первую запись , но с количеством 10 + 10 = 20.

Первая запись будет иметь флаг mainNumber = 1, а вторая запись будет иметь mainNumber = 0, однако этот столбец не отображается в SELECT.

Другими словами, я хотел бы суммировать количества, но отображать только productNumber, где mainNumber = 1.

Как мне это сделать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Если я правильно понял вопрос, это может вам помочь:

SELECT salesID, historyID, productID, name, productNumber, total.quantity
FROM table1
JOIN (
     SELECT salesID, SUM(quantity) AS quantity FROM table1 GROUP BY salesID
     ) AS total
ON table1.salesID = total.salesID
WHERE mainNumber=1
0 голосов
/ 04 июня 2013

Не совсем уверен, что я понял ... В наборе результатов вам нужна только первая строка, но какое значение должно быть в столбце productNumber?

Если бы подходило практически любое значение, вы не должны GROUP BY productNumber (который сохраняет отдельные строки), а агрегировать его, например, с MIN или MAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...