Я пытался написать SQL-запрос, который вернул бы набор данных с несколькими прикрепленными строками подсчета. В этом случае я хочу вернуть список ФРУКТОВ, которые ЗАГЛУШЕНЫ в 2018 году. Затем я хотел бы добавить столбец, в котором подсчитывается количество ПОВРЕЖДЕННЫХ ФРУКТОВ, найденных в 2018 году. Затем еще один столбец, который подсчитывает общее количествострок FRUIT, по типу, для года 2018.
Итак, учитывая следующую таблицу
FRUIT DEFECT YEAR ...
------------------------------
APPLE ROTTEN 2017
APPLE ROTTEN 2018
APPLE ROTTEN 2018
APPLE BUGS 2018
APPLE ROTTEN 2018
APPLE BUGS 2018
APPLE BITTEN 2018
APPLE BITTEN 2017
ORANGE BITTEN 2018
ORANGE ROTTEN 2018
Я хотел бы получить следующий результат,
FRUIT DEFECT YEAR DEFECTCOUNT FRUITCOUNT
----------------------------------------------------
APPLE ROTTEN 2018 3 6
ORANGE ROTTEN 2018 1 2
но проблема в том, что когда я ограничиваю оператор where поиском определенного DEFECT, я не могу получить итоговое значение для типа FRUIT за этот год.
Вот мой запрос на данный момент
SELECT DISTINCT FRUIT
, Defect
, YEAR([Date]) As [YR]
, COUNT(Defect) AS [DEFECTCOUNT] -- This returns correctly
--, COUNT(*) AS [FRUITCOUNT] -- does return the correct number
FROM [dbo].[A_DETAIL_REPOS] dat
WHERE YEAR(dat.[Date]) >= '2018'
AND YEAR(dat.[Date]) <= '2018'
AND dat.Defect = 'ROTTEN'
GROUP BY FRUIT, Year([Date]), Defect
ORDER BY YEAR([Date])
Спасибо за помощь,