我有两张桌子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是预期结果。
您能告诉我在这种情况下我们如何比较月份。
答案 0 :(得分:0)
您需要使用MS SQL提供的DATEADD
函数来比较日期,例如
WHERE XYZ.Date = DATEADD(MONTH, -1, ABC.Date)
请查看w3schools上的此链接以获取详细说明