SQL 2008:如果一行中的2列具有这些值

时间:2017-04-06 11:02:52

标签: sql-server-2008

美好的一天,例如目的:使用我查询中的这些给定数据。

T0.Date   T0.customer    T0.total   T1.Date,  T1.Total
2.1.2017  BLABLA         2,400.00   3.8.2017  2,400.00
1.2.2017  BLOBLO         5,000.00   3.1.2017  5,000.00
1.1.2017  BLEBLE         3,000.00   2.5.2017  3,000.00
12.5.2016 BLABLA         1,000.00   1.25.2017 1,000.00

我怎么能想到用T0.Date = January(1)删除行并将T1.Date = March(3)的同一行删除到查询中。我想在where where子句中使用case但我不知道如何开始这个条件。但是,如果T1.Date = 2月(2),如果T0.Date = 1或去年(12.1.2016),则无关紧要。

更新 预期产出:

T0.Date   T0.customer    T0.total   T1.Date, T1.Total
2.1.2017  BLABLA         2,400.00   3.8.2017 2,400.00
1.1.2017  BLEBLE         3,000.00   2.5.2017 3,000.00
12.5.2016 BLABLA         1,000.00   1.25.2017 1,000.00

2 个答案:

答案 0 :(得分:0)

这是你想要的吗?

where T0.Date <> '2017-01-01' or T1.Date <> '2017-03-03'

或者,如果您只是在寻找整个

where not ( (t0.date >= '2017-01-01' and t0.date < '2017-02-01') and
            (t1.date >= '2017-03-01' and t1.date < '2017-04-01')
          )

答案 1 :(得分:0)

这应该有用......

where month(dateadd(month,1,T0_date))=month(T1_date) and year(dateadd(month,1,T0_date))=year(T1_date)