Andreas: MS-SQL: Aus 2 Tabellen, eine Ergebniss Tabelle erzeugen

Guten Tag,

also, mein Problem sieht folgendermaßen aus:

Ich habe 2 Tabellen.

1. Tabelle:

FID, Firma, Ort, ...

2. Tabelle:

FID, Personenname, Alter, Leiter, ...

nun möchte ich aus diesen beiden Tabellen EINE Ergebnistabelle machen. In der 1. Tabellen stehen immer die Firmen und in der 2. Tabelle die Ansprechpartner, WOBEI die Ansprechpartner beliebig viele sein können.

In dieser Ergebnismenge, soll er mir für jeden Ansprechpartner immer auch die Daten aus der Firmentabelle schreiben, wobei die Verknüpfung über FID geht.

ein Ergebnis soll zB sein:

Hans Mayr, 41 Jahre, Geschäftsführer, Kiss AG, 12234 Nowhere, Teststr. 24, ...
Fritz Müller, 33 Jahre, Prokurist, Kiss AG, 12234 Nowhere, Teststr. 24, ...
usw.

Ich hoffe ich habe mich ein wenig klar ausgedrückt, aber ich hab so NULL Ahnung wie das gehen kann/soll.

lg,
Andreas

  1. Hi Andreas,

    ungefähr so:
    select firma, ort, personenname from ansprechpartner left join firmen on ansprechpartner.fid=firmen.fid

    Viele Grüße
    Stephan

    1. select firma, ort, personenname from ansprechpartner left join firmen on ansprechpartner.fid=firmen.fid

      Hallo Stephan!

      Vielen Dank. So gehts, jetzt hätte ich noch was gebraucht und zwar das ganz limitiert auf 3 max. 3 Ergebnisse, dh. ich müsste in meinem Fall ein TOP 3 reinbringen (my-sql= limit).

      Geht das auch noch? Habs einfach probiert, geht leider nicht (Falsche Syntax in der Nähe von FROM) :-(

      Gruß,
      Andreas

      1. Hallo Andreas!

        Vielen Dank. So gehts, jetzt hätte ich noch was gebraucht und zwar das ganz limitiert auf 3 max. 3 Ergebnisse, dh. ich müsste in meinem Fall ein TOP 3 reinbringen (my-sql= limit).

        Geht das auch noch?

        Ja: select top 3 firma, ort, personenname from ansprechpartner left join firmen on ansprechpartner.fid=firmen.fid

        Viele Grüsse
        Alex

        1. Ja: select top 3 firma, ort, personenname from ansprechpartner left join firmen on ansprechpartner.fid=firmen.fid

          Sorry, ich glaub ich hab mich falsch ausgedrückt, ich möchte PRO Firma dann nur zB 3 Ansprechpartner. So bekomme ich nur die ersten 3 Ergebnisse zurück.

          Gruß,
          Andreas

          1. Hi Andreas,

            Ja: select top 3 firma, ort, personenname from ansprechpartner left join firmen on ansprechpartner.fid=firmen.fid

            Sorry, ich glaub ich hab mich falsch ausgedrückt, ich möchte PRO Firma dann nur zB 3 Ansprechpartner. So bekomme ich nur die ersten 3 Ergebnisse zurück.

            Leider habe ich keinen MS-SQL da (und auch nicht so sonderlich viel Übung damit), aber eigentlich sollte das irgendwie mit einem subselect gehen:

            select firma, ort, personenname from firmen left join (select top3 fid, personenname from ansprechpartner where ansprechpartner.fid=firmen.fid) as ansprechpartnerlimit on ansprechpartnerlimit.fid=firmen.fid

            Wie gesagt, auf die genaue Syntax lasse ich mich nicht festnageln ;-)

            Viele Grüße
            Stephan