Announcement

Collapse
No announcement yet.

sql abfrage zu m:n beziehung

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

  • sql abfrage zu m:n beziehung

    Hallo

    vorerst eine kleine Erklärung!
    ich habe eine Tabelle Projekt und eine Tabelle Mitarbeiter!
    ein Mitarbeiter kann sowohl Inbetriebnehmer als auch Bearbeiter sein!
    diese Tabellen stehen in einer m:n Beziehung welche ich durch 2 Zuordnungen (Inbetriebnahme mit FK's ProjektID und MitarbeiterID und Bearbeitung mit FK's ProjektID und MitarbeiterID) aufgelöst habe.

    nochmals kurz so beschrieben!
    Projekt (ProjektID#, ...)
    Mitarbeiter(MitarbeiterID#,....)
    Inbetriebnahme(InbetriebnahmeID#, ProjektID FK, MitarbeiterID FK)
    Bearbeitung(BearbeitungID#, ProjektID FK, MitarbeiterID FK)


    Ein Projekt kann somit mehrere Bearbeiter und Inbetriebnehmer haben!

    Ziel meiner Abfrage soll eine Zeile sein wie folgt:

    LeistungID|Bearbeiter1|Bearbeitern|Inbetriebnehmer 1|Înbetriebnehmern

    sprich alle an der Leistund beteiligten Mitarbeiter in einem satz!

    ist das überhaupt möglich bzw wie gehe ich an die Sache heran?

    Danke im voraus LG

  • #2
    Welches DBMS?
    Suche mal nach Pivot.

    Comment


    • #3
      sql server 2005
      was meinst du mit such mal nach pivot?

      Comment


      • #4
        wohl sowas
        http://code.msdn.microsoft.com/SQLEx...ringTitle=Home

        Comment


        • #5
          hmm kann damit nicht recht viel anfangen!
          ich stehe ja vor dem problem, dass ich in diesen einen Datensatz eine dynamische Anzahl von Bearbeitern bzw Inbetriebnehmern hinzufügen muss!
          steh leider gerade etwas auf der leitung..

          Comment


          • #6
            Ja und das nennt man Pivot!

            Comment


            • #7
              könntest du vl nicht bitte ein kleines codestück auf mein beispiel beziehen? ich kann mir unter diesem beispiel in der msdn nichts vorstellen..

              er schreibt ja in seinem select genau die spalten die er will! ich weiß ja nicht ob ich jetz 1,2, oder was weiß ich wie viele Bearbeiter bzw Inbetriebnehmer ich hab!

              bitte .. wäre mir extrem damit geholfen!!!
              Zuletzt editiert von kojack20; 23.04.2008, 16:11.

              Comment


              • #8
                Hier befinden sich doch Beispiele fpr die verschiedenen MSSQL-Versionen.
                http://code.msdn.microsoft.com/SQLEx...ringTitle=Home
                http://msdn2.microsoft.com/en-us/library/ms177410.aspx

                Comment


                • #9
                  is das mal der richtige ansatz?


                  Code:
                  SELECT LeistungID, [0] AS B1, [1] AS B2, [2] AS B3
                  FROM 
                  (SELECT tbLeistung.LeistungID, tbMitarbeiter.Mitarbeitervorname + ' ' + tbMitarbeiter.Mitarbeiternachname as MAName, tbBearbeitung.MitarbeiterID as MAID
                  FROM tbLeistung, tbBearbeitung, tbMitarbeiter
                  where tbLeistung.LeistungID = tbBearbeitung.LeistungID
                  and tbMitarbeiter.MitarbeiterID = tbBearbeitung.MitarbeiterID) p
                  PIVOT
                  (
                  MANanme
                  FOR tbBearbeitung.MitarbeiterID IN
                  ( [0], [1], [2] )
                  ) AS pvt
                  ORDER BY LeistungID
                  wenn ich das ausführe bekomme ich eine fehlermeldung die mir sagt: falsche syntax in der nähe des for schlüsselwortes

                  Comment

                  Working...
                  X