【发布时间】:2014-03-03 20:45:07
【问题描述】:
我需要查询(及其子查询)方面的帮助。表中的每条记录都可以有一个或多个标识符,每个标识符都有自己的到期日期。我想计算有多少记录只有过期的标识符日期,无论有多少(都已过期)。我认为我不会删除具有多个标识符的记录,其中一个已过期但其他标识符是最新的。
SELECT COUNT(IDENTIFIER_ROWID)
FROM BO_IDENTIFIER_TABLE
WHERE (SELECT DISTINCT IDENTIFIER_ROWID
FROM BO_IDENTIFIER_TABLE WHERE IDENT_END_DT < (sysdate)
这就是我卡住的地方。我知道我需要一个子查询来恢复只有旧日期/过期日期的配置文件,然后在主查询中计算这些配置文件,但我没有正确编写它。非常感谢您的帮助!
【问题讨论】:
-
能否请您发布一些示例数据和预期输出。
-
@user2989408,这里有一些示例数据(如果格式更改,请见谅):Rowid_Object ID_St ID_No ID_End_Dt 12345 AR C-1234 12/31/2010 12345 AR C-2345 12/31/2013 23456 NJ NJ-1234 12/31/2008 23456 DE DE-1234 12/31/2013 23456 PA PA-1234 12/31/2016 34567 CA CA-1234 12/31/2012 因此,查询最初看起来像这样: SELECT COUNT (Rowid_Object) FROM BO_IDENTIFIER_TABLE WHERE (SELECT DISTINCT Rowid_Object FROM BO_IDENTIFIER_TABLE WHERE ID_END_DT