Announcement

Collapse
No announcement yet.

Rekursive Stored Procedur

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Rekursive Stored Procedur

    Hallo,

    ich habe eine Tabelle Mitabeiter mit den Spalten
    Mitarbeiternr und Chef
    (501, NULL,
    (502, 501,
    (503, 501,
    (504, 502,
    (505, 502,
    (601, NULL,
    (602, 601,
    (603, 601,
    (604, 601,
    (605, 604,
    (701, NULL,
    (702, 701,
    (703, 701

    ich soll eine rekursive storen proderure erstellen, die als IN Mitarbeiternummer hat und als OUT die Mitarbeiternummer des in der Mitarbeiterhierarchie höchsten Vorgesetzten zurückliefert. Falls ein Mitarbeiter keinen Chef hat, soll die eigene Mitarbeiternr zurückgeliefert werden. falls eine fehlerhafte MAnr übergeben wird, soll eine fhlermeldung erzeugt werden.

    Ich hoffe das ist verständlich genug und ihr könnt mir helfen.




  • #2
    Kann da nichts rekursives erkennen

    select count(*) from Mitarbeiter where Mitarbeiternr =IN.Mitarbeiternr
    Wenn 0 =Fehler, Mitarbeiter nicht vorhanden

    select max(chef) from Mitarbeiter where Mitarbeiternr =IN.Mitarbeiternr
    wenn <>null
    Gibt den Chef zurück
    wenn null
    Gib Mitarbeiternr zurück

    Christian

    Comment


    • #3
      ich muss es leider rekursiv machen

      Comment


      • #4
        Dann usst du dir eine Logik überlegen, dass du diese Procedure intern wieder aufrufst, um etwas zu tun.
        Christian

        Comment


        • #5
          Die gezeigten Daten ergeben zwar keine Rekursion, aber man könnte welche Eintragen, sodass eine SP nicht mit einem Schritt fertig ist.

          Die Logik, die überlegt werden soll, sähe ja wohl so aus, dass die Funktion, jeweils den nächst höheren Mitarbeiter liefert, solange bis Chef = Null ist.

          Wahrscheinlich ist das ja eine Übungsaufgabe, deshalb noch eine Anmerkung:
          Man kann mit der Aufgabenstellung rekursive Technik teilweise veranschaulichen, aber ein ratsames Vorgehen im Sinne einer performanten Antwort wäre die Nutzung recursiver Queries oder Window Functions, sofern das RDBMS diese bietet. (Bei mySQL nur bedingt der Fall, ab Version >= 8.0)

          Comment

          Working...
          X