【发布时间】:2017-06-11 16:14:24
【问题描述】:
当应用以下条件时,关于如何过滤下表中的行的任何建议/想法都会很棒。在此先感谢
条件 1: 当 Effective_date 是 08/01/2017 或之前,那么我需要所有的 ID,当他们的 UABP 是 NULL/空白/任何非零值/ 零
条件 2: 当 Effective_date > 08/01/2017 时,我需要应用过滤器并仅选择具有 UABP > 0 的 ID 并忽略其他记录。
初始查询:
注意:我在结果表的 UABP 和 Eff_date 列中包含以显示其数据的概念,但我不希望它们在我的查询中
SELECT
MAX(id_num) [ID], Submission_Num
FROM
[Fiduciary]
GROUP BY
Submission_Num
修改后的查询,但无法得到预期的结果:
--edited corrected one for fidicuary standalone when effective date greater than 08/01
SELECT
MAX(id_num) [ID], Submission_Num
FROM
[Fiduciary]
WHERE
UABP <> '' OR UABP IS NOT NULL OR UABP <> 0
AND Effective_Date > '08/1/2017'
GROUP BY
Submission_Num
原表
+---+--------------------+-------------+-----------------+
|ID | Submission_Num | UABP | Effective_date |
+---+--------------------+-------------+-----------------+
| 1 | 12121121 | NULL | 07/1/2017 |
| 2 | 65662656 | 565 | 06/1/2017 |
| 6 | 24646426 | | 05/1/2017 |
| 3 | 12652354 | 0 | 06/1/2017 |
| 8 | 56566565 | 232 | 08/02/2017 |
| 9 | 65665656 | NULL | 08/02/2017 |
| 10| 76358928 | 0 | 09/02/2017 |
+---+--------------------+-------------+---------------- +
预期结果:
+---+--------------------+-------------+-----------------+
|ID | Submission_Num | UABP | Effective_date |
+---+--------------------+-------------+-----------------+
| 1 | 12121121 | NULL | 07/1/2017 |
| 2 | 65662656 | 565 | 06/1/2017 |
| 6 | 24646426 | | 05/1/2017 |
| 3 | 12652354 | 0 | 06/1/2017 |
| 8 | 56566565 | 232 | 08/02/2017 |
+---+--------------------+-------------+---------------- +
【问题讨论】:
标签: sql sql-server tsql