sql >> Databasteknik >  >> RDS >> Oracle

ORACLE SQL Group Genom att STILLA ge dubbletter

Om CREATIONDATE är en datumdatatyp innehåller den tidselementet ner till sekunder. Det är högst osannolikt att Incident-ID:n du letar efter det lägsta av kommer att ha den exakta tiden. Formatera datumet till ett ISO-datum så ignorerar GROUP BY tidsskillnaderna.

SELECT TO_CHAR(MIN(I.INCIDENTID))      AS "Incident ID",
          to_char(I.CREATIONDATE, 'yyyy-mm-dd') AS "Creation Date",
          M.MESSAGESUBJECT                AS "Email Subject",
          MO.IPADDRESS                    AS "IP Address",
          MO.DOMAINUSERNAME               AS "Login ID",
          MO.ENDPOINTMACHINENAME          AS "Computer Name"
   FROM        MESSAGE M 
   LEFT JOIN   INCIDENT I 
   ON          M.MESSAGESOURCE = I.MESSAGESOURCE 
   AND         M.MESSAGEID = I.MESSAGEID
   AND         M.MESSAGEDATE    = I.MESSAGEDATE 
   LEFT JOIN   MESSAGEORIGINATOR MO
   ON          M.MESSAGEORIGINATORID = MO.MESSAGEORIGINATORID
   LEFT JOIN   MESSAGEEXT ME
   ON          ME.MESSAGEID = M.MESSAGEID
   LEFT JOIN   INCIDENTSTATUS S
   ON          S.INCIDENTSTATUSID = I.INCIDENTSTATUSID
   LEFT JOIN   CUSTOMATTRIBUTESRECORD C
   ON          C.CUSTOMATTRIBUTESRECORDID = I.CUSTOMATTRIBUTESRECORDID                    
   GROUP BY    to_char(I.CREATIONDATE, 'yyyy-mm-dd') 
               M.MESSAGESUBJECT,
               MO.IPADDRESS,
               MO.DOMAINUSERNAME,
               MO.ENDPOINTMACHINENAME



  1. Hur spårar man frågeförlopp i PostgreSQL?

  2. mysql - Hur sammanfogar man strängar och konverterar till att datera strängarna?

  3. Hur uppnår man standardvärdet om kolumnvärdet är NULL?

  4. Hur ansluter du till en LDAP-server med node-oracledb?