SQL-Problem

SQL-Problem

am 05.03.2006 16:08:05 von Jan Schmidt

Hallo NG,

mit meinen SQL-Basiskenntnissen komme ich hier nicht weiter.
Vielleicht kann mir jemand einen Tip geben, wie ich das
mit mysql (4.0) lösen kann.

Ich habe ein paar Tabellen, in denen verschiedene Einzelteile
erfaßt sind (LT, RK, AZ).

Dann habe ich eine Tabelle, in der die Spezifizierung aller Teile
erklärt ist (Spec).

Weiterhin gibts eine Tabelle, in der Einzelteile zu Komponenten
ergänzt werden (allgemeine Stückliste) (BG_Komp).

Und zum Schluß gibt es eine Tabelle in der sämtliche Baugruppen
erfaßt sind (BG).

Die Tabelle BG und die Einzelteil-Tabellen enthalten eine UID
(Serien-Nummer). Alle anderen Tabellen verwenden nur die ID's, die
automatisch erzeugt werden. Wie muß die sql-Abfrage zur Abfrage
aller Serien-Nummern die zu einer Baugruppe gehören, aussehen
(für mysql)?

Bsp.

Spec:
ID Name Artikel-Nummer
4 RK Z1
5 LT Z2
6 BG1 Z3
7 BG2 Z4
8 AZ Z5

LT:
ID Spec Ser_Nr
1 5 0500123
2 5 0500124

RK:
ID Spec Ser_Nr
1 4 0500125
2 4 0500126

AZ:
ID Spec Ser_Nr
1 8 A1
2 8 A2

BG_Komp:
ID Spec Teil1_Spec Teil2_Spec
1 6 4 5
2 7 6 8

BG:
ID Spec Ser_Nr Teil1_ID Teil2_ID
1 6 0500127 1 2
2 6 0500128 2 1
3 7 0500129 1 1

müßte ergeben:

0500127 besteht aus 0500125 und 0500124
0500128 besteht aus 0500126 und 0500123
0500129 besteht aus 0500128 und A1

Außerdem ist noch interessant, wie die Serien-Nummern aller
Komponenten zu bekommen sind:

0500129 besteht aus 0500126 und 0500123 und A1

Das Problem besteht also darin, daß anhand der Einträge in der Tabelle
BG_Komp die Tabelle ermittelt werden muß, in der die gesuchten
Informationen zu finden sind. Es ist also eine Rekursion nötig.

Das nächste Poblem ist das Ausfüllen und Kontrollieren der BG-Tabelle,
wenn ich alle Serien-Nummern der Komponenten habe. Dazu müßte dann
gesucht werden, ob die Serien-Nummern der Komponenten die zur Spec-ID
der Baugruppe benötigten Spec-ID's haben. Wenn das paßt, muß ein Eintrag
in die BG-Tabelle gemacht werden, in dem die passenden ID's aus den
Teil-Tabellen enthalten sind.

Danke für die Mühe,

Jan.