我已選擇具有3個值0,1,2的p_water,並且如果我選擇1,2我將從表中獲得場水爲1或2的結果,但是如果我選擇0我想獲得1和2的組合。我將如何做? AND zs.water = nvl(:p_water,zs.water)這無法幫助我獲得0值。使用具有三個值的參數在查詢中獲得不同結果
感謝
SELECT rua.DATUM_DOKUMENTA DATUM_DOKUMENTA,
rua.VRSTA_promjene VRSTA_promjene,
COUNT (*) broj_racuna,
SUM (NVL (rua.duguje, 0)) UKUPNO_BLAGAJNA,
,zs.vodovod
FROM nve_racuni_uplate rua, nve_potrosaci ptr ,nve_zone_snabdjevanja zs,nve_vodomjerna_mjesta vm
WHERE rua.RADNA_GODINA = :P_GODINA
AND ((PTR.VODOMJERNO_MJESTO = VM.SIFRA AND VM.ZBIRNI='N') or (PTR.VODOMJERNO_MJESTO = VM.SIFRA_ZBIRNOG))
AND zs.vodovod = nvl(:p_vodovod,zs.vodovod)
AND ( (:p_vrsta IS NULL AND rua.vrsta_promjene IN ('1', '2'))
OR (:p_vrsta IS NOT NULL AND rua.vrsta_promjene = :p_vrsta))
GROUP BY rua.DATUM_DOKUMENTA, rua.VRSTA_promjene,zs.vodovod
ORDER BY rua.DATUM_DOKUMENTA, rua.VRSTA_promjene,zs.vodovod
p_vodovod
是parametar與價值0,1 2
發佈您的查詢。你可能需要做一些像'AND zs.water =情況下,當NVL(:p_water,zs.water)在(1,2) 然後 其他 結束;' –
XING
我張貼查詢.... – mikrimouse