我有一个变量表“@USERS”和一个基于生效日期的USERCLASS数据库表。我需要做的是在确定的日期填充USERCLASS。 实例:TOP 1记录基于加入表中的每个记录的日期
@USERS
USERID | OTHER
--------------
A1 | 1
B1 | 2
C1 | 3
D1 | 4
DBCLASSTABLE
USERID | CLASS | EFFECTIVEDATE
------------------------------
A1 | ZZ | 2015-02-01
A1 | XX | 2014-02-01
B1 | TT | 2015-02-01
B1 | RR | 2014-02-01
etc..
基础上,这将是在比赛将是2014年的有效类2015-01-01..The类的日期都。
我所拥有的是:
SELECT
USERID,
OTHER,
'CLASS' = (SELECT TOP 1
A.CLASS
FROM
DBCLASSTABLE A
JOIN @USERS B on A.USERID = B.USERID
WHERE A.USERID = B.USERID AND A.EFFECTIVEDATE < 2015-01-01
ORDER BY A.EFFECTIVEDATE DESC
)
FROM
@USERID
不过,我已经清楚地做错事,因为它返回DBCLASSTABLE的所有记录的顶部。
USERID | OTHER | CLASS
----------------------
A1 | 1 | ZZ
B1 | 2 | ZZ
C1 | 3 | ZZ
D1 | 4 | ZZ
使用这个样本数据,它应该只返回
USERID | OTHER | CLASS
-----------------------
A1 | 1 | XX
B1 | 2 | RR
任何帮助,将不胜感激。
美丽!谢谢你的快速反应。标记为答案! – bpw