[Oracle] SQL - Logik

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Oracle] SQL - Logik

    Hi,

    bin an diesem Problem echt verzweifelt.

    Es gibt 2 Tabellen.
    Aus der NUTZER Tabelle brauche ich alle Abteilungen(ABT) einmal. Zusätzlich brauche ich das zugehörige Datum(EDATUM) aus der Tabelle Norm. Mithilfe der Tabelle Norm wird das Ergebnis noch ein wenig eingegrenzt.

    Das Problem: Der distinct wird durch die selektierung des Datums aufgehoben, da eine Abteilung im selben Quartal mehrmals auftauchen kann. Was ich für eine Quartalsauswertung nicht gebrauchen kann.

    Hier ein Beispiel:

    ABT1 | 2001-08-16
    ABT1 | 2005-06-27
    ABT1 | 2005-09-06
    ABT1 | 2005-09-07
    ABT1 | 2006-04-27
    ABT1 | 2006-10-27
    ABT1 | 2007-04-11

    Hier mein Select:
    Code:
    SELECT DISTINCT NUTZER.ABT AS ANZAHL, NORM.EDATUM
    FROM NORM LEFT JOIN NUTZER ON SUBSTR(NORM.BETREUER,-5) = NUTZER.NUTZERNR
    WHERE NUTZER.ORGEINHEIT = 'DCAGN01'
    AND NORM.KEY LIKE 'DC%'
    AND NORM.LDATUM = '*'
    Hier wäre der Select ohne das Datum abzufragen. Hier würde ich zwar alle Abteilungen rausbekommen aber ohne das Datum bringt mir das nichts
    Code:
    SELECT DISTINCT ABT FROM NUTZER WHERE ORGEINHEIT = 'DCAGN01' AND NUTZERNR IN
    (SELECT SUBSTR(BETREUER,-5) FROM NORM WHERE KEY LIKE 'DC%' AND LDATUM = '*')
    Also wie schaffe ich es jede Abteilung einmal mitsamt dem dazugehörigen Datum zu selektieren?

    Ich hoff mir kann jemand helfen und ich habs verständlich erklärt
    Lurchi ! Lurchi ! Lurchi !

  • #2
    Wenn eine Abteilung mehrere Daten hat, welches ist dann das Datum, das Du haben möchtest?

    Seit wann kennt ORACLE die LEFT JOIN Syntax von MySQL?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Also ich will pro Quartal eine Abteilung auch nur einmal haben. Das Datum was ich suche ist in der Norm Tabelle. Die Verbindung zwischen Nutzer und Norm Tabelle ist die NUTZERNR, die in der Tabelle NUTZER zu einer Abteilung gehört, und in der Tabelle Norm ein Datum hat.
      Lurchi ! Lurchi ! Lurchi !

      Kommentar


      • #4
        Original geschrieben von MelloPie
        Seit wann kennt ORACLE die LEFT JOIN Syntax von MySQL?
        Seit Version 10g
        Und das ist natürlich nicht primär die MySQL-Syntax, sondern die Ansi-SQL-Syntax

        @Anbu
        Ich vermute, dein Problem ist - unabhängig vom verwendten DBMS - so nicht lösbar. Das ist aber vermutlich ein Problem des Designs und nicht der Abfrage.
        Aber vielleicht zeigst du und deine Struktur und versuchst präziser zu beschreiben, was du haben willst.
        Gruss
        H2O

        Kommentar


        • #5
          Ja ich habs jetzt geschafft. Mit einem SQL-Befehl hätte es nicht geklappt. Ich habs jetzt per exzessiven View-Gebrauch gelöst .

          Naja die DB ist auch echt beschissen aufgebaut, aber is halt von nem Kunden und man darf ja nix dran ändern. *würg*

          Trotzdem danke an alle und sorry dass ich mich net besser ausgedrückt hab.

          schönes Wochenende, grüßle.
          Lurchi ! Lurchi ! Lurchi !

          Kommentar

          Lädt...
          X