这应该很容易,但我就是找不到答案(我会把它归咎于我已经进行了近 14 个小时的 SQL 编码这一事实)。
我有一个名为 report 的表,其中包含“Label”字段和“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
?
我的大脑被炸了。
帮助?