select ステートメントがあり、そのうちの少なくとも 1 つに今日から 60 日の差がある日付がある場合にのみ、すべての値を返したいと考えています。問題は、比較したい列を返す外部適用があり、それらが異なるテーブルから来ていることです(1つは現金アイテムに属し、もう1つはカードアイテムに属します)。
私が以下を持っていることを考慮して:
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
が、この条件に一致する行が 1 つだけでもすべてが必要です。
これを行うための最良のアプローチは何ですか?
編集
より明確にするために、ユースケースを説明します。
クライアントがいずれかの期日から60日以上遅れている場合にのみ、すべてのローンのアイテムを表示する必要があります