我敢肯定,这确实很明显,但是我想尽办法找出正确的单词组合以正确搜索。...因此,很抱歉,以前是否有人问过这个问题。
所以说我有一个包含4个字段的简单表:“产品”,“大陆”,“月”,“销售”。我想显示每个产品,大陆,月份的总销售额,但是无论是否有该月的销售额,我总是想显示每个大陆。因此,对于产品和月份的每种组合,我总是希望列出7个大洲。
我尝试了各种联接和CTE,但似乎找不到在大陆级别仅提取空值的正确组合。
数据示例:
Product Continent Month Sales
A Asia SEP ###
A America SEP ###
A Europe OCT ###
A Africa AUG ###
A Oceania OCT ###
B Europe SEP ###
B Africa SEP ###
C America AUG ###
C Oceania AUG ###
C Asia OCT ###
所需的输出:
Product Continent Month Sales
A Asia AUG
A America AUG
A Europe AUG
A Africa AUG ###
A Oceania AUG
A Asia SEP ###
A America SEP ###
A Europe SEP
A Africa SEP
A Oceania SEP
A Asia OCT
A America OCT
A Europe OCT ###
A Africa OCT
A Oceania OCT ###
B Asia SEP
B America SEP
B Europe SEP ###
B Africa SEP ###
B Oceania SEP
C Asia AUG
C America AUG ###
C Europe AUG
C Africa AUG
C Oceania AUG ###
C Asia OCT ###
C America OCT
C Europe OCT
C Africa OCT
C Oceania OCT
答案 0 :(得分:0)
您可以使用cross join
生成行,并使用left join
引入值:
select pm.product, pm.month, c.continent, d.sales
from (select distinct continent from data) c cross join
(select distinct product, month from data) pm left join
data d
on d.continent = c.continent and
d.product = pm.product and
d.month = pm.month;