Группировка по запросу с производными полями - PullRequest
0 голосов
/ 03 мая 2020

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

select 
    (QUANTITY*SALEPRICE) as sales,
    DATEPART (month, saledate) as MM
from [dbo].[PETSALE]
GROUP BY DATEPART (month, saledate)

1 Ответ

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

Вам потребуется агрегатная функция в предложении select, чтобы сделать ваше утверждение допустимым агрегированным запросом.

Я бы сформулировал ваш запрос следующим образом:

select 
    sum(quantity * saleprice) as sales,  -- aggregate function
    year(saledate) yyyy,
    month(saledate) mm
from [dbo].[petsale]
group by year(saledate), month(saledate)

Обратите внимание, что я добавил год продаж к предложениям select и group by: в случае, если ваши данные распространяются более чем на 12 месяцев Вы, вероятно, не хотите, чтобы продажи за один и тот же месяц в разные годы были сгруппированы. Но если вы это сделаете, вы можете просто удалить year(saledate) из запроса.

...