Hallo,
Volgens mij moet dit mogelijk zijn maar ik ben bezig geweest met CASE WHEN en IF, maar ik ben er nog niet achter hoe ik het kan oploassen. Ook niet met googlen, al vind ik het ook moeilijk waarop je moet googlen omdat ik misschien niet term ken waar ik op moet zoeken in dit geval.
Dit is in pseudo code wat ik eigenlijk wil:
SELECT main.veld 1
,main.veld 2
,IF ((select count(*)
from temptable tt
where tt.code = main.code ) > 0) THEN
,main.veld 3
,main.veld 4
,main.veld 5
ELSE
,0 as veld 3
,0 as veld 4
,0 as veld 5
END
From main_table main
WHERE ...
Nu hoop ik niet dat mensen gaan vallen dat de IF niet correct is oid, ik hoop dat jullie begrijpen wat ik graag wil bereiken nl. conditioneel de velden 3, 4 en 5 vullen, die eigenlijk ook nog afhankelijk is van een query.
Of moet je dan voor ieder veld een if conditie zetten zoals:
IF ((select count(*)
from temptable tt
where tt.code = main.code ) > 0, main.veld 3, 0) as veld 3
Maar dit lijkt mij onlogisch, of? Dan heb ik gelijk de volgende uitdaging te pakken: ik kan de tmptable niet meerdere keren 'reopen'. Hier heb ik overigens ook al last van bij een UNION.
Bedankt,
Nico
1.953 views