我正在尝试查看两个表 TableA 和 TableB 打印出任何显示超过 1 个计数的 TableA.ID。表 A 如下所示:
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。我的问题是有另一种方法可以做到这一点,或者我如何才能访问 TableA.Code 的 Message MoreThanOne。
谢谢您的帮助!