pit: mehrere Tabellen mit zusammenführen mehrerer Werte.

Hi Leute

ich habe 3 Tabellen die ich mittels SQL Statement abfrage und das klappt auch schon, aber ich muss die Werte der 3 Tabelle "Material" die die gleiche id haben in ein Feld abfüllen, das heisst es geht um seriennummern mit den zugehörigen Reparaturnummer und allem zugehörigen Material, und das ganze auf eine Zeile bringen.
hier mein SQL:

****
SELECT dbo.xtbldevice.xstrserialno, dbo.xtblrepair.xintrepairno, dbo.xtbldevice.lid, dbo.xtblrepair.lparentid,
dbo.xtblmaterial.lparentid, dbo.xtblmaterial.xmaterialno
FROM dbo.xtbldevice INNER JOIN dbo.xtblrepair
ON dbo.xtblrepair.lparentid = dbo.xtbldevice.lid
INNER JOIN dbo.xtblmaterial
ON dbo.xtblrepair.lparentid = dbo.xtblmaterial.lparentid
****

Die Ausgabe sieht wie folgt aus:

xstrserialnr; xintrepairno; lid; lparentid; lparentid; xmaterialno
3727090227 100002 19 19 19 02091567
3663080295 25365 691 691 691 02101515
3626690170 25413 665 665 665 02100549
YBSL012383 100057 757 757 757 02090136
3612670223 100061 761 761 761 02082274
3626200030 100062 762 762 762 02104269
YBLX094705 100068 768 768 768 02100549
YBLX094705 100068 768 768 768 02104201
3672490355 100069 769 769 769 02101026
3672490355 100069 769 769 769 02101028
3672490355 100069 769 769 769 02103167

Die Ausgabe sollte aber so sein: !
xstrserialnr; xintrepairno; lid; lparentid; lparentid; xmaterialno
3727090227 100002 19 19 19 02091567
3663080295 25365 691 691 691 02101515
3626690170 25413 665 665 665 02100549
YBSL012383 100057 757 757 757 02090136
3612670223 100061 761 761 761 02082274
3626200030 100062 762 762 762 02104269
YBLX094705 100068 768 768 768 02100549 02104201
3672490355 100069 769 769 769 02101026 02101028 02103167

Wie kann ich alle Materialnummern auf eine Zeile bringen die die gleiche Reparaturnummer haben..

Na ja ich zerbrech mir mal schön den Kopf und um Hilfe bin ich Dankbar.

Grüsse pit

  1. Hallo,

    Wie kann ich alle Materialnummern auf eine Zeile bringen die die gleiche Reparaturnummer haben..

    Mit einfachen Mitteln, sprich Standard-SQL: gar nicht. Wenn Dein Datenbanksystem die Möglichkeit bietet, Datenbank-Funktionen zu schreiben und in SQL-Statements einzubinden, dann könntest Du das damit erledigen, wobei ich von der Sinnhaftigkeit Deines Anliegens nicht wirklich überzeugt bin.

    Grüße
      Klaus

    1. Hallo,

      Wie kann ich alle Materialnummern auf eine Zeile bringen die die gleiche Reparaturnummer haben..

      wobei ich von der Sinnhaftigkeit Deines Anliegens nicht wirklich überzeugt bin.

      Hi Kalus
      Danke für die Antwort, es geht mir darum in einer ASP Seite alle Materialnummern die einer zugehörigen Reparatur gehören Tabellarisch anzuzeigen ohne dass ich für jede Materialnummer eine neu Zeile generiere.
      Also eine Zeile mit RepNr. und allen Materialnummern.

      Leider ist die SQL DB so aufgebaut, dass die Materialnummern in einer eigenen Tabelle gespeichert werden und ich nur eine Referenz ID zu der RepNr. habe.

      Gruss Pit

  2. guten morgen,

    Wie kann ich alle Materialnummern auf eine Zeile bringen die die gleiche Reparaturnummer haben..

    die erste möglichkeit, wäre wohl alle vorhandenen serienummern über eine WHERE bedingung einzeln abzufragen. dann bekommt du nur alle einträge zu einer serienummer. also erst alle serienummern abfragen und in einem arry speichern. dann das array durchgehen und den gewünschten rest zu einer seriennummer (WHERE Klausel) erfragen. das ist leider ein wenig ressourcen lastig. unterabfragen sind leider mit mysql noch nicht zu machen, falls sich das noch nicht geändert haben sollte.

    der zweite weg könnte sein, dass das frontend, welches du benutzt, dir aus deiner abfrage die gewünschte form bastelt.

    die dritte möglichkeit besteht in der group by klausel, also nach der serienummer gruppieren, wobei ich mir da nicht mehr sicher bin. eventuell musst du mit temporären tabellen hantieren. vielleicht findest du einen weg über group by oder jemand kennt sich damit beser aus.

    Ilja