Предложение MS SQL GROUP by требует наличия всех атрибутов
У меня есть два стола
CREATE TABLE [DBO].[TBL_PRODUCTION] ( PRODUCTION_ID INT IDENTITY(1, 1) NOT NULL ,PRODUCTION_NAME NVARCHAR(200) NOT NULL ,PRODUCTION_TYPE INT NOT NULL ,PRODUCTION_QUANTITY INT ,CONSTRAINT PK_PRODUCTION PRIMARY KEY (PRODUCTION_ID) ) INSERT INTO [DBO].[TBL_PRODUCTION] VALUES ('SGU',1, 100) INSERT INTO [DBO].[TBL_PRODUCTION] VALUES ('BGU',2, 150) CREATE TABLE [DBO].[TBL_DISTRIBUTOR] ( DISTRIBUTOR_ID INT IDENTITY(1, 1) NOT NULL ,PRODUCTION_ID INT NOT NULL ,QUARTER_TYPE INT NOT NULL ,DEMAND_QUANTITY INT ,CONSTRAINT PK_DISTRIBUTOR PRIMARY KEY (DISTRIBUTOR_ID) ) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (1,555,1,25) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (1,555,2,25) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (1,655,3,25) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (2,555,1,25) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (2,745,2,25) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (3,745,3,25) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (1,745,3,10) INSERT INTO [DBO].[TBL_DISTRIBUTOR] VALUES (2,745,3,50)
Мне нужно показать данные об общем распределении на ежеквартальной основе. Я имею в виду, сколько всего продукции распределяется в каждом квартале.
Запрос должен быть ГРУППИРОВАН только PRODUCTION_ID, а не другими, но когда я это делаю, я получаю ошибку как
Column 'DBO.TBL_PRODUCTION.PRODUCTION_NAME' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
И когда я комментирую A. QUARTER_TYPE в предложении GROUP BY я получаю ошибку как::
Column 'DBO.TBL_DISTRIBUTOR.QUARTER_TYPE' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Почему это так? Или есть какие-то проблемы с моим запросом?
Что я уже пробовал:
SELECT A.PRODUCTION_ID ,B.PRODUCTION_NAME ,A.QUARTER_TYPE ,SUM(A.DEMAND_QUANTITY) [TOTAL DISTRIBUTED] FROM [DBO].[TBL_DISTRIBUTOR] A INNER JOIN [DBO].[TBL_PRODUCTION] B ON A.PRODUCTION_ID = B.PRODUCTION_ID GROUP BY A.PRODUCTION_ID ,B.PRODUCTION_NAME ,A.QUARTER_TYPE ORDER BY A.PRODUCTION_ID