Dear Experts,
I am using case statement in where clause, following is my query.
SELECT DISTINCT cd.as_of_date, cd.disclosureid, ds.sec_short_name,
c.numberofissuedshares, c.treasurystock, c.issuedshares,
c.sharesoutstanding, cd.companyid, c.stockcode "Stock Code",
c.nameeng "Company Name", cd.disclosuredate "Disclosure Date",
cd.fullname, cd.direct, cd.indirect, cd.lastupdateon,
cd.directindirect
FROM dwh_companiesdisclosure cd,
dwh_companiesinfo c,
dwh_securities_cd ds,
dwh_sector_cd dsec
WHERE cd.companyid = c.companyid
AND ds.security_cd = c.stockcode
AND ds.sector_cd = dsec.code
AND (cd.disclosureid, cd.lastupdateon) IN (
SELECT *
FROM (SELECT disclosureid, lastupdateon
FROM dwh_companiesdisclosure
WHERE companyid = COMPANYID
AND lastupdateon <=
TO_DATE ('09/10/2015', 'MM/DD/YYYY')
GROUP BY disclosureid, lastupdateon
ORDER BY 2 DESC)
WHERE ROWNUM = 1)
AND (c.companyid, c.as_of_date) IN (
SELECT companyid, MAX (as_of_date)
FROM dwh_companiesinfo
WHERE as_of_date <=
TO_DATE ('09/10/2015', 'MM/DD/YYYY')
GROUP BY companyid)
--and C.Companyid=174
AND ds.sector_cd in ( case :sector
when 'MARKET IXP' then ((DS.board_cd='REG') and (code<>'9900'))
when 'Total Market' then ((ds.board_cd='REG') or (code='9900'))
else
ds.sector_cd
end)
AND ds.security_cd = NVL (:security, ds.security_cd)
ORDER BY 1 DESC
when i am using this query its throwing error like missing right parenthesis.
could any one help me on this.
thanks in advance.