我有一个 select 语句,并且仅当其中至少一个值与今天相差 60 天时才返回所有值。问题是我有一个外部应用程序,它返回我想要比较的列,它们来自不同的表(一个属于现金项目,另一个属于卡项目)。
考虑到我有以下几点:
OUTER APPLY (
SELECT COUNT(*) AS quantity, MIN(date) AS item_date
FROM dbo.get_cash_items(loans.id_cash) AS cash_item
HAVING loans.id_product_type = 1 --Cash
UNION
SELECT COUNT(*) AS quantity, MIN(date) AS item_date
FROM dbo.get_card_items(loans.id_card) AS card_item
HAVING loans.id_product_type = 2 --Card
) AS items
我只想在 时返回所有行DATEDIFF(DAY, MIN(items.item_date), GETDATE()) >= 60
,但即使只有一个符合此条件,我也想要它们全部。
这样做的最佳方法是什么?
编辑
为了更清楚,我将解释用例:
我需要显示每笔贷款的项目,只有当客户迟到超过到期日的 60 天时