我有两个查询,Q1 和 Q2。
Q1 为每个演示和日期生成一个结果。
Q2 为每个演示、日期和站点生成一个结果。
此外,第二季度给定演示和站点的日期将与第一季度重叠,
但第一季度的所有日期都不存在,甚至可能在第二季度有一些新的日期在第一季度不存在。
我想要做的是生成一个结果表,其中 Q1 的结果基本上重复(行下方的行)等于 Q2 中的站点数。
第二季度的结果应该在第二列,日期和演示匹配。
如果 Q1 中的日期在 Q2 的该站点中不存在,则该条目应为零或空。我知道这可以通过加入来实现,但我无法让它发挥作用。我试过了 -
select a.result, b.site, b.result from
(Q1) as a right join (Q2) as b on a.demo = b.demo and a.date=b.date
但这会产生一些奇怪的结果。对于 Q2 的每个站点,a.result 的条目都是不同的,尽管它们不应该是不同的。
编辑 - 这是我想要做的 -
Q1 -
demo | date
------------------------------
1 | 10/31/2013
1 | 11/01/2013
2 | 11/02/2013
Q2 -
demo | site | date
------------------------------
1 | A | 10/31/2013
1 | A | 11/01/2013
2 | B | 11/01/2013
2 | B | 11/02/2013
想要的结果——
demo | date | site
---------------------------------------
1 | 10/31/2013 | A
1 | 11/01/2013 | A
2 | 11/02/2013 | null
1 | 10/31/2013 | null
1 | 11/01/2013 | B
2 | 11/02/2013 | B