所以我想创建一个方差报告。 Simply sales - planned sales = variance
等。
我有两个表,一个名为Actual
,一个名为Plan
。两者都有相同的字段,
-account code
-month
-year
-sales
我的想法是使用年份计划数据填充Plan
表格,然后在实际进入时更新Actuals
。
我遇到的问题是,如何构建一个显示(1)计划外销售和(2)计划销售而不是实际销售的查询?我找不到这样做的连接类型。
或者我是否完全忽略了这一点以及更明显的做法?!
答案 0 :(得分:0)
我不确定我是否理解这个问题。如果Actual
中有时记录丢失,有时在Plan
中缺少记录,则在UNION查询中将LEFT JOIN查询与RIGHT JOIN查询组合在一起。
SELECT
P.*,
A.sales - P.sales AS variance
FROM
Plan P
LEFT JOIN Actual A
ON P.[account code] = A.[account code] AND
P.month = A.month AND
P.year = A.year
UNION ALL
SELECT
A.*,
NULL AS variance
FROM
Plan P
RIGHT JOIN Actual A
ON P.[account code] = A.[account code] AND
P.month = A.month AND
P.year = A.year
WHERE
P.[account code] IS NULL
WHERE子句避免重复,只选择第一个SELECT查询中缺少的记录。