CASE O IF DENTRO DE UN JOIN EN PLSQL
Publicado por JESUSC (2 intervenciones) el 08/06/2017 14:39:57
Hola, escribo porque estoy haciendo un query en donde intento colocar una CONDICIÓN dentro de unos join o después del 'Where', el ejemplo del query es el siguiente:
ya que hay un join que depende del día, al hacer esto me da error de: ORA-00907: missing right parenthesis
y creo que tengo bien puestos los paréntesis, nunca he realizado un case después de un where, pero veo que es lo que necesito para este caso
Saludos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT Trim(A.EXTERNAL_ID)
FROM (
SELECT DISTINCT eqm.external_id , cmfpkg.active_dt, cm.chg_date, serv.service_active_dt,
To_Char(cm.chg_date,'DD')dia
FROM arbor.external_id_equip_map eqm
INNER JOIN cmf_package_component cmfpkg ON cmfpkg.parent_subscr_no = eqm.subscr_no
INNER JOIN cmf cm ON cm.account_no = eqm.account_no
INNER JOIN arbor.service serv ON cmfpkg.parent_subscr_no = serv.subscr_no
WHERE cmfpkg.package_id = 5084
AND eqm.external_id_type = 11
AND eqm.inactive_date IS NULL
) a
WHERE Trunc(a.active_dt) = (IF a.dia = '05' OR a.dia = '03'
THEN
Trunc(SYSDATE)-1
ELSE
Trunc(SYSDATE)-1 or Trunc(a.chg_date) = trunc(SYSDATE) -1
END if)
ORDER BY a.external_id;
ya que hay un join que depende del día, al hacer esto me da error de: ORA-00907: missing right parenthesis
y creo que tengo bien puestos los paréntesis, nunca he realizado un case después de un where, pero veo que es lo que necesito para este caso
Saludos.
Valora esta pregunta


0