对于此问题中的任何新手遗漏或晦涩之处,请先致歉。
我有两张表,我想在约会时加入。
Table1:
Closing Date
2013-04-26 00:00:00.000
2013-01-26 00:00:00.000
Table2:
Price Date
2013-04-24 00:00:00.000
2013-04-25 00:00:00.000
2013-04-26 00:00:00.000
2013-01-22 00:00:00.000
2013-01-23 00:00:00.000
2013-01-24 00:00:00.000
我只想从 Table2 中为 Table1 中的每个日期提取最接近的日期(在前 5 天内),然后将其分配为“MATCH”或“NONMATCH”。
我有以下代码
CASE Table2.PricingDate
WHEN Table1.[ClosingDate] THEN 'MATCH'
WHEN DATEADD(D,-1, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-2, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-3, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-4, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-5, Table1.[ClosingDate]) THEN 'NONMATCH'
END [Match]
FROM Table2 INNER JOIN Table1
ON Table2.PricingDate
BETWEEN DATEADD(D,-5,Table1.[ClosingDate]) AND Table1.[ClosingDate]
WHERE
CASE Table2.PricingDate
WHEN Table1.[ClosingDate] THEN 'MATCH'
WHEN DATEADD(D,-1, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-2, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-3, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-4, Table1.[ClosingDate]) THEN 'NONMATCH'
WHEN DATEADD(D,-5, Table1.[ClosingDate]) THEN 'NONMATCH'
END IS NOT NULL
问题是这会为每个 ClosingDate 返回多个 PricingDate:
**Closing Date Price Date Match**
2013-04-26 00:00:00.000 2013-04-24 00:00:00.000 NONMATCH
2013-04-26 00:00:00.000 2013-04-25 00:00:00.000 NONMATCH
2013-04-26 00:00:00.000 2013-04-26 00:00:00.000 MATCH
2013-01-26 00:00:00.000 2013-01-22 00:00:00.000 NONMATCH
2013-01-26 00:00:00.000 2013-01-23 00:00:00.000 NONMATCH
2013-01-26 00:00:00.000 2013-01-24 00:00:00.000 NONMATCH
我希望它只返回:
**Closing Date Price Date Match**
2013-04-26 00:00:00.000 2013-04-26 00:00:00.000 MATCH
2013-01-26 00:00:00.000 2013-01-24 00:00:00.000 NONMATCH
我怎样才能让它为每个关闭日期只返回一个定价日期?非常感谢您的帮助!