Это должно быть очень просто, но я просто не могу определить ответ (я буду обвинять его в том, что я был SQL-кодировкой почти 14 часов).SQL Left Join, Cross Join - найти недостающее значение
У меня есть таблица под названием report с полем «Ярлык» и поле «ReportYear». Я знаю, что у меня есть три возможных значения «Ярлык», но не каждый лейбл будет иметь запись за каждый год.
Я могу выбрать четкий список ярлыков и я получаю:
'Regular'
'Special'
'None'
Выполнение некоторых ручного выбора данных здесь, я знаю, что 2011 и 2010 имеют 0 записей с меткой «Специальный», но мне нужен запрос чтобы получить эту информацию вместе, чтобы она не выходила:
'Regular' - '2012' - '5'
'Regular' - '2011' - '2'
'Regular' - '2010' - '1'
'Special' - '2012' - '3'
'Special' - '2011' - '0'
'Special' - '2010' - '0'
'None' - '2012' - '10'
'None' - '2011' - '5'
'None' - '2010' - '2'
Надеюсь, это имеет смысл.
Я знаю, что могу SELECT Count(*), Label FROM (SELECT DISTINCT Label FROM Report) t1
... но тогда? LEFT JOIN Report t2 ON t1.Label=t2.Label
? CROSS JOIN
?
Мой мозг жарится.
Помощь?
ДА! Так оно и было. Спасибо огромное! – JMax2012
Добро пожаловать. – ErikE