Jag har denna sql-sats, men som den ser ut nu plockar den (givetvis...) bara ut dem som uppfyller alla villkor, jag vill att den ska plocka ut kundnummer mm men bara sum(belopp) där villkoret order = 1 eller order = 2 uppfylls.
Någon som förstår och kan?
(SQL-Base, Gupta)
select kund.kundnr, sum(belopp)
from datab, kund where
datab.kundnr = kund.kundnr
and kund.dist = '200'
and vecka >= '2004-30'
and vecka <= '2004-41'
and kund.status='Aktiv'
and datab.kundnr in
(select kundnr from datab where
vecka >= '2004-30'
and vecka <= '2004-41'
and (order = 1 or (order = 2))
group by kund.kundnr
select kund.kundnr, case when order = 1 or order = 2 then
sum(belopp) end,
from datab, kund where
datab.kundnr = kund.kundnr
and kund.dist = '200'
and vecka >= '2004-30'
and vecka <= '2004-41'
and kund.status='Aktiv'
and datab.kundnr in
(select kundnr from datab where
vecka >= '2004-30'
and vecka <= '2004-41'
and (order = 1 or (order = 2))
group by kund.kundnr
select kund.kundnr, sum(belopp) ,
from datab, kund where
datab.kundnr = kund.kundnr
and kund.dist = '200'
and vecka >= '2004-30'
and vecka <= '2004-41'
and kund.status='Aktiv'
and datab.kundnr in
(select kundnr from datab where
vecka >= '2004-30'
and vecka <= '2004-41'
and (order = 1 or order = 2)
group by kund.kundnr
union all
select kund.kundnr, -1 ,
from datab, kund where
datab.kundnr = kund.kundnr
and kund.dist = '200'
and vecka >= '2004-30'
and vecka <= '2004-41'
and kund.status='Aktiv'
and datab.kundnr in
(select kundnr from datab where
vecka >= '2004-30'
and vecka <= '2004-41'
and (order <> 1 and order <> 2)
group by kund.kundnr