【发布时间】:2015-01-08 10:49:28
【问题描述】:
给定一组记录对象进入特定状态的日期的数据库记录,我想生成一个查询,显示在任何特定日期每个状态有多少对象。结果将用于生成趋势报告,显示每个状态下的对象数量如何随时间变化。
我有一个如下表,记录了对象进入特定状态的日期:
ObjID EntryDate State
----- ---------- -----
1 2014-11-01 A
1 2014-11-04 B
1 2014-11-06 C
2 2014-11-01 A
2 2014-11-03 B
2 2014-11-10 C
3 2014-11-03 B
3 2014-11-08 C
有任意数量的对象和状态。
我需要生成一个查询,返回每个日期在每个状态中的对象数。结果如下所示:
Date State Count
---------- ----- -----
2014-11-01 A 2
2014-11-01 B 0
2014-11-01 C 0
2014-11-02 A 2
2014-11-02 B 0
2014-11-02 C 0
2014-11-03 A 1
2014-11-03 B 2
2014-11-03 C 0
2014-11-04 A 0
2014-11-04 B 3
2014-11-04 C 0
2014-11-05 A 0
2014-11-05 B 3
2014-11-05 C 0
2014-11-06 A 0
2014-11-06 B 2
2014-11-06 C 1
2014-11-07 A 0
2014-11-07 B 2
2014-11-07 C 1
2014-11-08 A 0
2014-11-08 B 1
2014-11-08 C 2
2014-11-09 A 0
2014-11-09 B 1
2014-11-09 C 2
2014-11-10 A 0
2014-11-10 B 0
2014-11-10 C 3
我正在使用 Oracle 数据库。
我找不到与我的情况相匹配的示例。以下问题看起来像是在寻求类似但不同问题的解决方案:
任何可以提供的帮助或提示将不胜感激。
【问题讨论】:
-
您的预期结果包括表格中没有的数据...这是从哪里来的?
-
数据库记录对象进入特定状态的日期。对象保持在该状态,直到它转换到另一个状态。理想情况下,查询结果将提供每个状态中的对象数量,即使在没有发生状态转换的日期也是如此。