我有表1,我正在 Select 产品代码的子集. 我有表2,其中有我想要计数的那些满足列A条件X的产品的日常实例.我还想计算满足列A条件Y的相同产品的实例.
我以为一个简单的左连接就可以做到,这样我就可以看到表1中的所有子集,而只计数表2中的所有子集,但是每当我放置一个日期过滤器或放置条件语句时,它的行为就像一个内部连接.
理想情况下,我的输出看起来像
Date | Product | X | Y |
---|---|---|---|
1/1 | AAA | 5 | 10 |
1/1 | BBB | 0 | 0 |
1/1 | CCC | 3 | 5 |
1/1 | DDD | 0 | 0 |
1/1 | EEE | 0 | 0 |
我需要在1个语句中执行此操作,因为我无法创建一个表来保存它们. 我一直在try (没有成功)的是我在表1到表2上做一个左连接. 我 Select 我想要的日期、产品代码和条件X的产品代码数. 在我的where中,我要求表2中的日期,然后我通过一个长的IN语句将我的产品子集引入.
SELECT ProductDate, ProductCode, COUNT(ProductCode)
FROM TABLE1
LEFT JOIN TABLE2 on ProductCode
WHERE TABLE2.DATE='1/1' AND TABLE1.Product IN('AAA','BBB','CCC','DDD','EEE')
然而,我的输出是一个内在的join.
Date | Product | X | Y |
---|---|---|---|
1/1 | AAA | 5 | 10 |
1/1 | CCC | 3 | 5 |
任何帮助将不胜感激.