对tsql函数来说很新,我正在尝试编写一个为STC_STATUS
的{{1}}返回STC_STATUS_DATE
的值。我现在就拥有它,如果有STC_STATUS_DATE is <= the STC_START_DATE+9
,它会返回一个空值。
STC_STATUS > stc_start_date+9
非常感谢任何帮助。
编辑:每个建议的样本数据:
该函数返回一个空值,因为pos 1的stc_status日期大于 SELECT @Result1 = STC_STATUS
FROM STC_STATUSES ss
LEFT OUTER JOIN STUDENT_ACAD_CRED stc ON ss.STUDENT_ACAD_CRED_ID = stc.STUDENT_ACAD_CRED_ID
WHERE ss.STUDENT_ACAD_CRED_ID = ISNULL(@student_acad_cred_id, '0')
AND MAX(ss.STC_STATUS_DATE) <= DATEADD(day,9,stc.STC_START_DATE)
。我的目标是让函数做的是返回stc_start_date+9
下面的最新状态日期,这个样本中的记录为2。
答案 0 :(得分:0)
您可以使用TOP 1
来获得正确的结果
SELECT TOP 1 @Result1 = STC_STATUS
FROM STC_STATUSES ss
LEFT OUTER JOIN STUDENT_ACAD_CRED stc
ON ss.STUDENT_ACAD_CRED_ID = stc.STUDENT_ACAD_CRED_ID
WHERE ss.STUDENT_ACAD_CRED_ID = ISNULL(@student_acad_cred_id, '0')
AND ss.STC_STATUS_DATE <= DATEADD(day,9,stc.STC_START_DATE)
ORDER BY ss.STC_STATUS_DATE desc