【发布时间】:2015-03-29 18:58:23
【问题描述】:
我需要能够识别第一次出现在表格视图中的一组行、一个问题集。不确定如何清楚地提出问题,因此将尝试在下面列出。
示例数据
+-----------+------------+--------+------+----------+--------+
| Reference | Date | PerRef | QSet | Question | Answer |
+-----------+------------+--------+------+----------+--------+
| 1 | 01/01/2015 | a | QS1 | Q1 | A1 |
| 1 | 01/01/2015 | a | QS1 | Q2 | A2 |
| 1 | 01/01/2015 | a | QS1 | Q3 | A3 |
| 2 | 02/01/2015 | a | QS1 | Q1 | A1 |
| 2 | 02/01/2015 | a | QS1 | Q2 | A2 |
| 2 | 02/01/2015 | a | QS1 | Q3 | A3 |
| 3 | 02/01/2015 | b | QS2 | Q1 | A1 |
| 3 | 02/01/2015 | b | QS2 | Q2 | A2 |
| 3 | 02/01/2015 | b | QS2 | Q3 | A3 |
| 4 | 02/01/2015 | b | QS3 | Q1 | A1 |
| 4 | 02/01/2015 | b | QS3 | Q2 | A2 |
| 4 | 02/01/2015 | b | QS3 | Q3 | A3 |
+-----------+------------+--------+------+----------+--------+
对于这个表,我想在选择查询上生成一个新列,如下所示:
+-----------+------------+---------+-------+----------+--------+----------+--------+
| Reference | Date | PerRef | QSet | Question | Answer | Earliest | Latest |
+-----------+------------+---------+-------+----------+--------+----------+--------+
| 1 | 01/01/2015 | a | QS1 | Q1 | A1 | 1 | 2 |
| 1 | 01/01/2015 | a | QS1 | Q2 | A2 | 1 | 2 |
| 1 | 01/01/2015 | a | QS1 | Q3 | A3 | 1 | 2 |
| 2 | 02/01/2015 | a | QS1 | Q1 | A1 | 2 | 1 |
| 2 | 02/01/2015 | a | QS1 | Q2 | A2 | 2 | 1 |
| 2 | 02/01/2015 | a | QS1 | Q3 | A3 | 2 | 1 |
| 3 | 02/01/2015 | b | QS2 | Q1 | A1 | 1 | 1 |
| 3 | 02/01/2015 | b | QS2 | Q2 | A2 | 1 | 1 |
| 3 | 02/01/2015 | b | QS2 | Q3 | A3 | 1 | 1 |
| 4 | 05/01/2015 | b | QS3 | Q1 | A1 | 1 | 1 |
| 4 | 05/01/2015 | b | QS3 | Q2 | A2 | 1 | 1 |
| 4 | 05/01/2015 | b | QS3 | Q3 | A3 | 1 | 1 |
+-----------+------------+---------+-------+----------+--------+----------+--------+
我在最早和最新都有这个,因为它可以让我撤回第一个完成的或最新的。通常,查询将只带回针对某人的一种类型的问题之一,无论是第一个完成的还是他最近完成的。拥有这两者当然可以选择带回最早或最新的选项,并查看两者之间的变化。
所以要尝试改写这个 - 我需要根据参考创建一个计数器,按 PerRef 和 QSet 分组,按日期排序(升序或降序)
当然,如果有更好的方法,请说明,因为我可能会让这过于复杂 - 如果有办法选择 PerRef 和 Qset 分组的第一个或最后一个引用?
【问题讨论】:
-
如果有 3 个其他条目,例如 3_03/01/2015_a_QS1_... 最早的值是 2 还是 3?
-
这应该是 3 - 我想它应该是一个序列号,但如果有意义的话,它会应用于 PerRef&Qset 的代理组。所以 4_03/01/2015_a_QS1_would 是 4 an 依此类推。
标签: sql reporting-services sql-server-2012