【发布时间】:2016-10-29 12:51:08
【问题描述】:
我有一张表格,日期从前一年的第一天到上个月,即 2015 年 1 月到 2016 年 9 月。
我必须在下面的同一张表中进行两个月的比较 i。 e.,从table1中选择一月份的所有行,除了表1中二月份的行;从table1.....
直到上个月。
在这里我需要对每两个月的比较进行条件联合,直到上个月。
示例:
select col1,col2 from table1 where month=jan 2015
except
select col1,col2 from table1 where month=feb 2015
union
select col1,col2 from table1 where month=feb 2015
except
select col1,col2 from table1 where month=mar 2015
.
.
.
union
select col1,col2 from table1 where month=aug 2016
except
select col1,col2 from table1 where month=sep 2016
样本数据:
Customer Product date amount
-------------------------------------------
a p1 1/31/2015 $12
a p2 1/31/2015 $13
a p2 2/28/2015 $1
所以这里的产品 p1 存在于 1 月,而 2015 年 2 月不再存在。所以我需要 2015 年 2 月不存在的所有 1 月产品 ....
谁能提出解决方案?
【问题讨论】:
-
请编辑您的问题并提供示例数据和所需的结果。
-
这是有道理的。您真正想在商业上实现什么目标?
-
一些数据清理
-
col1,col2 可以在请求的结果集中重复吗?例如,如果一个组合存在于一月,它是否也存在于五月?另外,它可以在一月份存在两次吗?我们要消除所有重复项吗?
-
不,每个产品和客户只有一个组合存在一个月。
标签: sql sql-server tsql sql-server-2012