查询返回列的NULL值

时间:2019-04-25 09:27:27

标签: oracle oracle10g

我对使用子查询非常陌生。运行以下查询时,列t_num和timestamp为NULL,而在各自的表中这些列具有值。

表trans包含多个p_num,trans_amt,trans_balance。我只想获取2017年7月31日之前和之前发生的交易。

select 
    p.p_number, 
    p.name, 
    t.t_num, 
    t.timestamp 
from payers p
    left join (
        select p_number, t_num, timestamp from trans a
        where a.timestamp <= '31-JUL-2017' and rownum = 1 
        order by a.timestamp desc
    ) t on t.p_number = p.p_number
where p.p_number in(44545558, 44545559, 44545560, 44545561, 44545562)

结果

Result

我尝试仅运行查询的这一部分,并且可以看到t_num和timestamp列的值。

select p_number, t_num, timestamp from trans a
where a.timestamp <= '31-JUL-2017' and rownum = 1 
order by a.timestamp desc

1 个答案:

答案 0 :(得分:4)

您的查询首先对子查询中的数据进行排序,并首先获取不正确的<?php $getproject['p_id'] == $this->getdocs[0]['fk_project_id'] ? ' selected="selected"' : ''; ?> 。在此类查询中使用<?php echo ( ($getproject['p_id'] == $this->getdocs[0]['fk_project_id']) ? ' selected="selected"' : ''); ?> 更好,更安全:

p_number

dbfiddle example