У меня есть запрос, который я хочу предоставить фиксированный вывод таблицы (так что я могу графа в Excel проще). Запрос выглядит следующим образом:Таблица SQL Sum с фиксированными строками?
SELECT
Case
WHEN ScrapsReasonID = 2339 THEN 'Box 5'
WHEN ScrapsReasonID = 2340 THEN 'Box 6'
WHEN ScrapsReasonID = 2342 THEN 'Box 7'
WHEN ScrapsReasonID = 2343 THEN 'Box 8'
WHEN ScrapsReasonID = 2344 THEN 'Box 9'
Else 'Unknown'
END
AS 'BoxNumber',
count(Case When PartNumberID = '378' Then Scraps End) AS '9.5mm',
count(Case When PartNumberID = '379' Then Scraps End) AS '10.0mm',
count(Case When PartNumberID = '380' Then Scraps End) AS '10.5mm'
FROM [ProcessControl].[dbo].[OutputScrap]
WHERE
MachineId = '93'
And ScrapsReasonID In
(
'2339',
'2340',
'2342',
'2343',
'2344'
)
And PDate Between '22-may-2014' and '29-may-2014'
GROUP BY ScrapsReasonID
Это работает, если есть определенно все 5 scrapreasonIDs между датами набора, но если есть только 3, например, я получаю только 3 строки в таблице Sum. Есть ли способ всегда возвращать все 5 scrapreasonID и нулевые значения для 9.5, 10.0, 10.5, если они не существуют?
рассмотреть вопрос о предоставлении надлежащих DDLS (и/или sqlfiddle) вместе с желаемым результатом SET. – Strawberry
Это sql-сервер, я думаю, вы должны правильно пометить свой вопрос. –
Удален тег mysql и добавлен тег sql-server, потому что синтаксис явно предлагает SQL Server. –