E ovako, imam jos jedno pitanje, vezano za CASE WHEN...
Naime, recimo da je rijec u preduzecu koje ima tri kontakt osobe u zavisnosti od proizvoda koje prodaje... Kontakt osoba 1 (nosilac) je, recimo direktor... Kontakt osoba 2 (zamjenik), je recimo zamjenik direktora... Kontakt osoba 3 je default osoba, recimo sekretarica...
Obrada koja se popusta trebala bi raditi sljedecu stvar: ako je popunjeno polje kontakt osobe 1, da puni sa tim unosom, ako nije, da provjeri da li je kontakt osoba 2 unesena, ako jeste da puni sa tim, a ako nije nijedna kontakt osoba unesena, onda da stavi defaultnu vrijednost, tj sekretaricu... Kod koji imam ne radi, a ide ovako:
(CASE WHEN <<KONTAKT.OSOBA.1>>IS NOT NULL
THEN <<KONTAKT.OSOBA.1>>
ELSE NVL(<<KONTAKT.OSOBA.2>>, 'KONTAKT OSOBA 3')
END)
E sad, ovo vraca djelimicno dobar rezultat... Za situaciju gdje nema kontakt osobe 2, on puni sa default vrijednoscu (takoreci, preskace prvi uslov, a to je da postoji kontakt osoba 1), ali ako je popunjena i kontakt osoba 1 i 2, onda puni sa kontakt osobom 1... Kontakt osoba 2 se ne pojavljuje...
Kontam da zamjenim sa ovim kodom:
(CASE WHEN <<KONTAKT.OSOBA.1>>IS NOT NULL
THEN <<KONTAKT.OSOBA.1>>
WHEN <<KONTAKT.OSOBA.2>>IS NOT NULL
THEN <<KONTAKT.OSOBA.2>>
ELSE 'KONTAKT OSOBA 3'
END)
Medjutim, nisam siguran da li ce raditi, ali mi je ovaj kod najlogicniji... Problem je u tome sto sam probao samo sa:
(CASE WHEN <<KONTAKT.OSOBA.1>>IS NOT NULL
THEN <<KONTAKT.OSOBA.1>>
ELSE 'KONTAKT OSOBA 3'
END)
i on upisuje samo kontakt osobu 3, na sve unose.. Ne kontam zasto... A ako dodam jos jedan WHEN-THEN uslov, tek onda kontam da nece raditi
Pa ako neko skonta u cemu grijesim...