Oracle SQL CTE no funciona, ¿alguna solución?

Un usuario Pregunto ✅

ArtieLadie

He estado trabajando en una consulta durante casi un mes.

Importo Oracle SQL a PowerBI y deseo columnas distintas

SELECT TO_CHAR(MIN(I.INCIDENTID))                  AS "Incident ID",
          MIN(I.CREATIONDATE)                      AS "Creation Date",
          TO_CHAR(I.CREATIONDATE,'MM-DD-YYYY')     AS "Date",
          TRIM(MO.DOMAINUSERNAME)                  AS "Login ID",  
          TRIM(M.MESSAGESUBJECT)                   AS "Email Subject"
   FROM  INCIDENT I 
   JOIN  MESSAGE M
   ON M.MESSAGEID = I.MESSAGEID
   JOIN   MESSAGEORIGINATOR MO
   ON     M.MESSAGEORIGINATORID = MO.MESSAGEORIGINATORID           
   GROUP BY TO_CHAR(I.CREATIONDATE,'MM-DD-YYYY'),
            TRIM(MO.DOMAINUSERNAME),
            TRIM(M.MESSAGESUBJECT)

Esta consulta da mal resultado

malo.png

Pero estoy buscando un buen resultado, es decir

bien.png

Me han aconsejado usar INNER JOIN y HAVING COUNT

=1, lo que soluciona parcialmente el problema, es decir, en lugar de 3 o 4 duplicados, obtengo 2 duplicados.

Ahora me han aconsejado usar CTE —- desafortunadamente esto da un error en PowerBI. ¿Cómo arreglar esto?

with cte as (SELECT TO_CHAR(I.INCIDENTID))                  AS "Incident ID",
              (I.CREATIONDATE)                      AS "Creation Date",
              TO_CHAR(I.CREATIONDATE,'MM-DD-YYYY')     AS "Date",
              TRIM(MO.DOMAINUSERNAME)                  AS "Login ID",  
              TRIM(M.MESSAGESUBJECT)                   AS "Email Subject",
              row_number() over(partition by TO_CHAR(I.CREATIONDATE,'MM-DD-YYYY'),
            TRIM(MO.DOMAINUSERNAME), TRIM(M.MESSAGESUBJECT) order by TO_CHAR(I.INCIDENTID)),I.CREATIONDATE) rn 
       FROM  INCIDENT I 
       JOIN  MESSAGE M
       ON M.MESSAGEID = I.MESSAGEID
       JOIN   MESSAGEORIGINATOR MO
       ON     M.MESSAGEORIGINATORID = MO.MESSAGEORIGINATORID 
) select * from cte where rn=1

error.PNG

error.PNG

ArtieLadie

Gracias por su respuesta — sin embargo, todavía necesito ayuda

ya me asegure

1. La sintaxis es correcta.

2. FROM está en el lugar correcto y no se han producido errores ortográficos.

v-xicai En respuesta a

ArtieLadie

Hola @ArtieLadie,

Tal vez necesite verificarlo nuevamente, por ejemplo, el corchete «)» en un lugar incorrecto, o puede preguntarle a alguien excelente que sea bueno en eso.

1.png

1.png

Atentamente,

v-xicai

Hola @ArtieLadie,

Para evitar el error ORA-00923, puede verificar los siguientes puntos:

1.Corrija la sintaxis. Asegúrese de haber colocado la palabra clave FROM en el lugar correcto y de que no se hayan producido errores ortográficos.

2.Si usó comillas en un alias, asegúrese de que hayan encerrado correctamente el alias y que sean comillas dobles.

3.Asegúrese de que no se hayan utilizado palabras reservadas como alias. Consulte el apéndice de Oracle para conocer las palabras reservadas y ver una lista completa.

Puede obtener más información: http://www.dba-oracle.com/t_ora_00923_from_keyword_not_found_where_expected.htm

https://www.tekstream.com/oracle-error-messages/ora-00923-from-keyword-not-found-where-expected/

Por favor, comprenda que este enlace se proporciona «TAL CUAL» sin garantías ni garantías de cambios de contenido, y no confiere ningún derecho.

Atentamente,

amy

Si esta publicaciónayuda , entonces por favor considere Acéptalo como la solución.

para ayudar a los otros miembros a encontrarlo más rápidamente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *