Как суммировать повторяющиеся значения строк в запросе - PullRequest
0 голосов
/ 03 мая 2020

Это мои sql данные:

ProductID   id     SQFeet Stock
---------------
3           1      2400   10
17          2      1500   20
6           3      1000   15 
17          4      3000   5
6           4      2000   34

Но код и имя имеют дублированные значения, и я хочу суммировать итоговые значения по каждому дублированному полю. Примерно так:

ProductID id       SQFeet Stock
---------------
3         id       2400   10
17        id       4500   25
6         id       3000   49

Я пробовал:

select ProductID, id, SUM(SQFeet) as SQ, SUM(Stock) as Stock from tbl_FactoryStock 
GROUP BY ProductID, id

Но это не работает для нескольких групп по кумнам. Если я использую только одну группу по столбцу, это работает нормально. Например:

//This works fine
select ProductID, SUM(SQFeet) as SQ, SUM(Stock) as Stock from tbl_FactoryStock 
GROUP BY ProductID

Но когда я использую его для нескольких групп по столбцам, он не работает.

Как достичь цели для нескольких групп по нескольким столбцам?

Ответы [ 2 ]

0 голосов
/ 03 мая 2020
DECLARE @T TABLE(
CODE INT ,
NAME VARCHAR(MAX),
TOTAL INT)

INSERT INTO @T VALUES(3,'SPRITE',2400)
INSERT INTO @T VALUES(17,'COKE',1500)
INSERT INTO @T VALUES(6 ,'DEW ',1000)
INSERT INTO @T VALUES(17,'COKE',3000)
INSERT INTO @T VALUES(6 ,'DEW ',2000)

SELECT CODE,NAME,SUM(TOTAL) AS TOTAL 
FROM @T
GROUP BY CODE,NAME

Этот запрос отлично работает для вашего дела: enter image description here

0 голосов
/ 03 мая 2020

Вы можете попробовать это

Select code, name, sum(total) as total
from yourtable
group by code, name

Live db <> fiddle demo.

Если вы хотите проверить идентификатор записи с повторяющимся значением, то вы можете использовать Приведенный ниже запрос с использованием оконной функции

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