sql - Multiple Selects (with Null) from the same table -
so have write sql in db2, , cant figure out how it. pick these field codes , values finance table long above $10,000
select (a.value), (b.value), (c.value) ... client k, finance a, finance b, finance c ...
the problem in statement. cannot put:
where k.client = a.client , a.fieldcode = 1 , a.value > 10000 , k.client = b.client , b.fieldcode = 2 , b.value > 10000 ...
and on... because doesnt include nulls, drastically reduces result set, more times call finance table.
how keep above formatting , include nulls display line long either finance or finance b or finance c etc exists?
(note: doing first obvious thing repeatedly calling finance table once, finance a, no b,c,d etc not work problem because results (from a,b,c,d etc) cannot spaced out on many lines).
this compressed version of doing:
select a.client_id, a.period_id, fn0.amount, fn2.amount assesment left outer join finance fn0 on a.client_id = fn0.client_id , a.period_id = fn0.period_id left outer join finance fn1 on a.client_id = fn1.client_id , a.period_id = fn1.period_id fn0.fld_cd = 1258860 , fn1.fld_cd = 1258861
the problem im still having is, if blank out fn1 related lines, lot more returned values. aka still not including null values, , returning values if field codes have values.
you need left outer join
instead of comma separated inner join
select a.value, b.value, c.value client k left join finance on k.client = a.client , a.value > 10000 , a.fieldcode = 1 left join finance b on k.client = b.client , b.value > 10000 , b.fieldcode = 2 left join finance c on k.client = c.client ......
update :
move left table filters on
condition else implicitly converted inner join
. try this
select a.client_id, a.period_id, fn0.amount, fn2.amount assesment left outer join finance fn0 on a.client_id = fn0.client_id , a.period_id = fn0.period_id , fn0.fld_cd = 1258860 left outer join finance fn1 on a.client_id = fn1.client_id , a.period_id = fn1.period_id , fn1.fld_cd = 1258861
Comments
Post a Comment