表格如下所示
PK1 PKDate1 Field1
A 4/14/2014 ABC
A 4/15/2014 ABC
B 4/14/2014 ABC
B 4/15/2014 DEF
C 4/15/2014 ABC
D 4/14/2014 ABC
如何编写一个包含两个日期的查询,并将每个值的Field1与日期进行比较。踢球者是,如果某一行在一个日期是存在的,而不是另一个,则将其显示为空。 IE中的resultSet应该如下(如果在4/14 + 4/15中传递)
PK1 Field1ForDay1 Field1ForDay2
A ABC ABC
B ABC DEF
C null ABC
D ABC null
对我来说,困难的部分是获得' nulls'一个方面"对于另一个存在的日期 - 其中PK1 =' C'并不存在4/14日期显示空,反之亦然(其中PK1 =' D',没有记录,4/15日期显示为空)。 应该能够帮助我的任何可能的帮助或进展
答案 0 :(得分:1)
您可以使用group by
和条件聚合:
select pk1,
max(case when PKDate1 = to_date('2014-04-14', 'YYYY-MM-DD') then field1 end) as Field1ForDay1,
max(case when PKDate1 = to_date('2014-04-15', 'YYYY-MM-DD')then field1 end) as Field1ForDay2
from table t
group by pk1;