SQL中上个月检查值是否存在

时间:2018-01-29 09:53:47

标签: sql sql-server-2008 tsql

我有两张桌子XYZ和ABC

create table #abc(id int, value int, dates date)
create table #xyz(id int, value int, dates date)

insert into #xyz values(1,10,'2017/02/01')
Insert into #xyz values(2,10,'2017/05/01')

Insert into #abc values(1,10,'2017/01/01')
Insert into #abc values(1,20,'2017/02/01')
Insert into #abc values(2,4,'2017/01/01')
Insert into #abc values(2,5,'2017/04/01')

XYZ
ID  Value   Dates
1   10  2017/02/01
2   10  2017/05/01

ABC         
ID  Values  Dates   ExpectedResult
1   10  2017/01/01  20
1   20  2017/02/01  0
2   4   2017/01/01  0
2   5   2017/04/01  15

我想检查表ABC是否具有(月 - 1)值与表XYZ比较。 表的唯一性由ID和日期标识。 对于eg->表XYZ id-1具有日期2017/02/01,即2月数据和我的ABC表ID-1具有2017/01 / 01,即1月数据然后XYZ值+ ABC值,即20是预期结果。

您能告诉我在这种情况下我们如何比较月份。

1 个答案:

答案 0 :(得分:0)

您需要使用MS SQL提供的DATEADD函数来比较日期,例如

WHERE XYZ.Date = DATEADD(MONTH, -1, ABC.Date)

请查看w3schools上的此链接以获取详细说明