我在一个表中有一组条目,表与另一个表连接在一起,我需要返回一个结果集,不包括特定日期值的条目。
表格1
我需要根据查询返回一组条目并找到值,以及根据屏幕截图的日期为 <= GETDATE() 的其他项的集合
结果应该是
如您所见,结果集返回所有三个 General Worker 项,但应仅返回日期时间 <= GetDate() 的位置。
我尝试了各种方法,从 (SELECT .. (PARTITION)) 方法到子值表结果,它们都没有返回我需要的结果集。
我需要所有其他行都完好无损,只有普通工人 date <= GETDATE() 并且我被卡住了。
更新
修改前我的 T-SQL 语句:
SELECT
T0.nContractID,
T1.sJobCatNo,
T1.nJobCatID,
T1.sJobCatDesc,
T1.nDeleted,
T1.nAdminLocked,
T1.nClientDefault,
T1.nRateNT,
CASE
WHEN (T0.sDistributionCode IN ('Nails', 'Board'))
THEN 1
ELSE 0
END AS 'ShowRate'
FROM
[dbo].[Contract] AS T0
INNER JOIN [dbo].[JobCategoryRates] AS T1 ON T1.nContractID = T0.nContractID
WHERE
T1.nContractID = 200198
AND T1.nDeleted = 0
ORDER BY
T1.sJobCatDesc
更新 2
我需要结果看起来像这样:
更新 3
也许这可能会有所帮助?
表 1,对于 nContractID 返回 19 个结果(其中 3 个相同),唯一不同的值是 dEndDate 列应该是 <= GETDATE()。我需要提取 dEndDate 为空且 dEndDate <= GETDATE() 的所有值。到目前为止我尝试过的所有事情都只返回一个结果,但我脑海中的逻辑说我应该有 17 个结果,如果 dEndDate 项目 >= GETDATE() 被删除?