我有两张table:
T1:(每家商店的销售额)
`Store Sales DateT
A01 100 01-01-22
B01 200 01-01-22
C01 300 01-01-22`
T2:(储存)
`CodeStore Name
A01 Name1
B01 Name2
C01 Name3
D01 Name4`
我想获取两个表的所有行,即使商店中没有销售。例如:在表T1中,商店D 01在此日期(01-01-22)没有销售:但我想得到这张唱片
预期结果:
`Store Sales
A01 100
B01 200
C01 300
D01 `
我试过这段代码,但是商店D 01没有出现:
`SELECT CodeStore, sum(Sales)
FROM T1
LEFT OUTER JOIN T2 ON CodeStore = Store
where DateT = '01-01-22'
group by CodeStore`
1条答案
按热度按时间jyztefdp1#
您必须在查询中切换两个数据表,以便包含T2的所有记录。此外,
DateT
筛选器现在应该在链接准则中(在ON子句中),因为它会筛选T1
。使用左连接(
LEFT OUTER JOIN
)可确保即使在连接表(T1
)中没有匹配行,select(T2
)中的表中的所有行都将包括在结果中。