Announcement

Collapse
No announcement yet.

Select TOP bei mehreren tabellen

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

  • Select TOP bei mehreren tabellen

    Hi zusammen,

    ich habe 3Tabellen mit folgengem Aufbau:

    Tabelle 1: ID INT IDENTITY(1,1), Teile INT PRIMARY KEY, Bemerkung varchar(50)
    Tabelle 2 : ID INT IDENTITY(1,1), Teile INT PRIMARY KEY
    Tabelle 3: ID INT IDENTITY(1,1), Teile INT PRIMARY KEY, Bemerkung varchar(50), INT Zusatz.

    Es kann vorkommen, dass es in jeder Tabelle unterschiedliche Werte für Teile gibt.
    Über einen FULL OUTER JOIN der Spalte-Teile Frage ich die 3Tabellen ab.

    Die Abfrage lautet:

    Select Tabelle1.*, Tabelle2.*, Tabelle3.* From
    Tabelle1 FULL OUTER JOIN
    Tabelle2 ON Tabelle1.Teile = Tabelle1.Teile FULL OUTER JOIN
    Tabelle3 ON Tabelle2.Teile = Tabelle3.Teile

    Wie kann man jetz ein Select TOP so platzieren, dass ich aus jeder Tabellen eine gewisse Anzahl Zeilen erhalte?

    Hat jemand ne idee?

  • #2
    Hab's noch nie probiert, aber vielleicht funktioniert sowas wie:

    Select Tabelle1.*, X.*, Y.* From
    Tabelle1 FULL OUTER JOIN
    (select top 10 * from Tabelle2 where .... order by ...) as X ON X.Teile = Tabelle1.Teile FULL OUTER JOIN
    (select top 10 * from Tabelle3 where .... order by ...) as Y ON Y.Teile = X.Teile

    bye,
    Helmut

    Comment


    • #3
      Hallo Helmut,

      vielen Dank erstmal für deine Antwort. Die Abfrage scheint soweit zu funktionieren. Allerdings müssten die Ergebnisse aus Tabelle 1 auch begrenzt sein (Ebenfalls Top 10)
      Hast Du eine Idee?

      Michael

      Comment


      • #4
        Vielleicht so:

        Code:
        Select top 10 * from 
        (
          Select Tabelle1.*, X.*, Y.* From Tabelle1
          FULL OUTER JOIN (select top 10 * from Tabelle2 where .... order by ...) as X
            ON X.Teile = Tabelle1.Teile
          FULL OUTER JOIN (select top 10 * from Tabelle3 where .... order by ...) as Y
            ON Y.Teile = X.Teile
        ) as Z
        bye,
        Helmut

        Comment

        Working...
        X