TableAとTableBの2つのテーブルを調べて、1つ以上のカウントを示すTableA.IDを出力しようとしています。TableAは次のようになります。
ID | Code
------------
1 | A
2 | B
3 | C
表Bは次のようになります
ID | AID | EffectiveDate | ExpirationDate
------------------------------------------------
1 | 1 | 2012-01-01 | 2012-12-31
2 | 1 | 2012-01-01 | 2012-12-31
3 | 2 | 2012-01-01 | 2012-12-31
4 | 3 | 2012-01-01 | 2012-12-31
私が使用しているクエリは次のようになります。
DECLARE @MoreThanOne varchar(250)
SET @MoreThanOne = ''
IF((SELECT COUNT(*) FROM TableA
WHERE EXISTS(
SELECT TableB.ID
,TableB.EffectiveDate
,TableB.ExpirationDate
FROM TableB
WHERE TableB.AID = TableA.ID
and GETDATE() Between TableB.EffectiveDate and TableB.ExpirationDate
)
GROUP BY TableA.Code) > 1)
BEGIN
--SET @MoreThanOne = @MoreThanOne + TableA.Code + CHAR(10)
END
PRINT @MoreThanOne
ネストされたクエリは、作り直したときに機能することを知っています。これにより、TableAの一意のコードにすべてのカウントが出力されます。TableA.Codeにアクセスできないため、コメントアウトした内容を使用できないことを知っています。私の質問は、これを行う別の方法、またはメッセージMoreThanOneのTableA.Codeにアクセスする方法があります。
助けてくれてありがとう!