【发布时间】:2013-07-29 09:45:47
【问题描述】:
我需要对下表进行查询,输出如下所述
我有列Timestamp, A, B, C, D
并且,样本数据如下
Timestamp A B C D
------------------------------
20-7-2013:2:15 1 360 1 -5
20-7-2013:7:15 2 360 E -3
21-7-2013:9:15 N 360 E -6
21-7-2013:10:15 N 360 E -8
22-7-2013:11:15 N 360 E -7
首先,我需要检查列A最后记录值是(NULL or E or -ve)值,如果这三个是,那么我需要得到最后一个良好的起息日(在A列的情况下输出应该是“20-7-2013:7:15”)取决于条件(每列介于 0 到 360、>0、-5 到 +5 之间)。对 A 到 Z 列也必须这样做。最终输出应该是
ColumnName Time
-------------------------
A 20-7-2013:7:15
更新:对于列 A,输出应为:20-7-2013:7:15(因为它是上一个 NULL 的直接好值); B列可以忽略,因为最后一个值为360并且满足条件;对于 C 列,输出应该是: 20-7-2013:2:15 因为条件是 E 错误之前的最后一个好值,并且 D 列输出应该是 20-7-2013:7:15 因为它满足条件(值介于 -5 和 +5 之间)...请帮助
【问题讨论】:
-
正如你所说的
The same has to be done for the columns A to Z. And the Final output should be,还需要做什么? -
感谢您的回复,我的意思是,我获取列 A 的输出的方式与条件相同,我也需要在输出中获取其余列的输出
-
你能发布一个你迄今为止尝试过的查询
-
很抱歉,我还没有构建查询..正在尝试..如果您能提供帮助,我们将不胜感激
-
您在帖子中提到
Column A last record value表示最旧记录还是最新记录?
标签: sql sql-server sql-server-2008 plsqldeveloper