【问题标题】:Count of Profiles Where One or All Expiration Dates Are Before Current Date一个或所有到期日期在当前日期之前的配置文件计数
【发布时间】: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

标签: sql count distinct


【解决方案1】:

这样的?计算未在具有未过期 ID 的子查询中找到的不同记录。 http://sqlfiddle.com/#!4/81611/2/0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多