【发布时间】:2022-01-09 01:50:27
【问题描述】:
匹配的销售是由连接提供的,我正在寻找无与伦比的销售。
CTE
With PriorSalesCTE
(
Item
Variant,
Sum(sales)
Date between 7/1/2020 and 7/5/2020
),
CurrentSalesCTE
(
Item
Variant,
Sum(sales)
Date between 7/1/2021 and 7/5/2021
)
Select
SUM(cs.Sales) ‘MatchedSales’
FROM PriorSalesCTE ps join CurrentSalesCTE ps
ON cs.Item = ps.Item
And cs.Variant = ps.Variant
现在我需要两边的空格 我需要 2020 年售出但 2021 年未售出的商品的销售额 - 销售额损失 相反,2020 年没有销售的 2021 年销售额 - 新销售额。
我尝试将这些作为 CTE 的单独部分添加到 CTE 中,但连接并不能满足我的需要。
有什么建议吗? CTE 是否只是阻止我获取所有内容,并可能添加一个 UNION ALL 查询来获取不匹配的值?
【问题讨论】:
-
您在寻找
FULL JOIN吗? Visual Representation of SQL Joins -
您可以使用条件聚合在一次运行中获得两者。你的 DBMS 是什么?
-
请标记您的特定 RDBMS,您的 CTE 不是我知道的有效语法。
-
另外,为了检查您是否了解 Stack Overflow 的工作原理,您是否有任何理由不接受您之前问题的任何答案?