我有一个事务处理表,其中,根据下面的示例,完整的事务处理(事务)跨越多行
我要查找的是包含所有null的事务和仅部分具有null的tranid的事务,并且仅显示tranid的位置,其中acount_id下的每一列都为null,而在上例中只有6中的2。
我编写了以下查询,但是搜索“ is null”只会生成具有空值的第一个事务的两行,而不是在整个事务中搜索所有空值。我不确定如何搜索,希望这里的逻辑可以对您有所帮助。
select *
from ns.tItemFulfillment itf
inner join ns.tsalesorder so on itf.created_from_id = so.transaction_id
left join ns.tpurchaseorder tpo on so.transaction_id = tpo.created_from_id
inner join ns.transaction_lines tl on itf.transaction_id = tl.transaction_id
left join ns.accounts a on tl.account_id = a.account_id
where tl.account_ID IS NULL and tpo.created_from_id is null
产生以下内容,如您所见,它只是上面事务的最后两行。
我应该只能查询全空的tranid,这是我需要的帮助。谢谢
答案 0 :(得分:1)
使用聚合:
select tranid
from mytable —- or whatever join you need
group by tranid
having max(account_id) is null
and max(account_number) is null
—- etc for all columns that need to be all null