Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Doppelter Mitarbeiter in der Tabelle wegen Abteilungswechsel

Fügen Sie einfach einen Test für sysdate und die Zuordnungsspalten hinzu

var sql = "SELECT " +
                  "SPØRGSMÅL_ID, " +
                  "KARAKTER, " +
                  "COUNT(*) AS COUNT " +
              "FROM " + 
                  "KS_DRIFT.KT_KARAKTER kara " +
              "LEFT JOIN " + 
                  "KS_DRIFT.KT_BESVARELSE besv ON kara.BESVARELSE_ID = besv.EKSTERN_ID AND kara.TYPE = besv.TYPE " +
              "LEFT JOIN " +
                  "KS_DRIFT.V_AGENT_ALLOCATION age ON " + (queryParams.JoinOnFirstAgent ? "FØRSTE_AGENT" : "SIDSTE_AGENT") + " = age.AGENT_INITIALS AND TIDSPUNKT >= ALLOCATION_START AND TIDSPUNKT < ALLOCATION_END + 1  " +
                  "and sysdate BETWEEN ALLOCATION_START AND ALLOCATION_END " +
              "WHERE TIDSPUNKT >= to_date(" +
                  OracleConversion.ToOracleDate(queryParams.Interval.Lower) +
                  ",'YYYY-MM-DD') AND TIDSPUNKT < to_date(" +
                  OracleConversion.ToOracleDate(queryParams.Interval.Upper) +
                  ",'YYYY-MM-DD') + 1 AND " +
                  "SPØRGSMÅL_ID = " + queryParams.QuestionId +
                  (!queryParams.IncludeCDNs.IsNullOrEmpty() ? "AND CDN IN (" + queryParams.IncludeCDNs.ToDelimitedString(", ") + ") " : "") +
                  (!queryParams.ExcludeCDNs.IsNullOrEmpty() ? "AND CDN NOT IN (" + queryParams.ExcludeCDNs.ToDelimitedString(", ") + ") " : "") +
                  (!queryParams.AgentIds.IsNullOrEmpty() ? " AND AGENT_ID IN (" + queryParams.AgentIds.ToDelimitedString(", ") + ") " : "") +
                  (!queryParams.TeamIds.IsNullOrEmpty() ? " AND TEAM_ID IN (" + queryParams.TeamIds.ToDelimitedString(", ") + ") " : "") +
              "GROUP BY " +
                  "SPØRGSMÅL_ID, " +
                  "KARAKTER";