Hallo
ich habe ein Problem (bin leider noch nicht so gut in sql)
ich habe drei Tabellen
eine Tabelle Auswertung in der die Primärschlüssel
enthalten sind
WS_OP WS_UP ID
1 2 1
2 1 2
eine Tabelle Werkstoffe
mit den Werkstoffbezeichnungen und der Polymergruppe
WS_ID POLY_ID BEZEICHNUNG
1 1 Delrin
2 2 S-Schwarz
Und eine Tabelle Polymer mit der Bezeichnung
POLY_ID Bezeichnung
1 POM
2 PA
In der Auswertungstabelle würde ich jetzt gern ein Berechnetes Feld OP_UP_POLY der Polymerpaarung haben (anhand der angegebenen Werkstoffe) in der Form:
WS_OP WS_UP OP_UP_POLY
1 2 POM-PA
2 1 PA-POM
aber ich bekomm das irgendwie mit den ganzen joins nicht hin
(achso, ich nehme sqlite3, falls das für den sqltext wichtig ist
)
Texte zu Fremdschlüsseln besorgen
Moin, Erik,
der Tabellenentwurf erschließt sich mir nicht so ganz, ich habe mich deshalb auf das Nötigste beschränkt, um das Prinzip zu zeigen:
**Werkstoff** (<u>Werkstoff</u>, Bezeichnung, FS\_P1, FS\_P2)
**Polymer** (<u>Polymer</u>, Bezeichnung)
Dazu eine Query:
SELECT Werkstoff.Bezeichnung,
P1.Bezeichnung AS P1\_Name,
P2.Bezeichnung AS P2\_Name
FROM Polymer AS p1, Polymer AS p2, Werkstoff
WHERE p1.Polymer=Werkstoff.p1
And p2.Polymer=Werkstoff.p2
Gruß Ralf
ungetestet
SELECT Auswertung.WS\_OP,Auswertung.WS\_UP,GROUP\_CONCAT(Polymer.Bezeichnung ) AS OP\_UP\_POLY
FROM Auswertung
JOIN Werkstoffe
ON Auswertung.WS\_OP = Werkstoffe.WS\_ID OR Auswertung.WS\_UP = Werkstoffe.WS\_ID
JOIN Polymer
ON Werkstoffe.POLY\_ID = Polymer.POLY\_ID
WHERE Auswertung.WS\_OP = Werkstoffe.WS\_ID OR Auswertung.WS\_UP = Werkstoffe.WS\_ID
GROUP BY Auswertung.ID
Holle Werkstoff OP UP mit namen Bezeichnung und für WS_OP und WS OP und gruppiere das nach Auswertungs ID
Group_Concat packt dann alles in ein Feld (achtung stringlängenbegrenzung beachten)
ob das so richtig ist und ob das in sqlite geht, keine Ahnung .
Aber vielleicht hilft es ja !
fehlerteufelchen
Bezeichnung und für WS_OP und WS OP … mehr auf http://w-w-w.ms/a45yir
soll natürlich sein
Bezeichnung und für WS_OP und WS_UP… mehr auf http://w-w-w.ms/a45yir