Hi an alle,
denke dass hier ist tricky:
Ich will die in Access (Jet) SQL mögliche Transform- Query in MySQL darstellen. Folgende Ausgangstabellen (gekürzt):
aus diesen soll nun für verschiedenste Zwecke (Wochenrechnung, Analyse , Statistik etc) eine Transform-Tabelle nach dem Muster:
Mein Ansatz ist dabei folgendeer:
per PHP wird dynamisch eine SQL Abfrage erstellt die (hier jetzt statisch) etwa so aussieht:
Dies funktioniert auch bei Rows die keine NULL Werte enthalten, dort jedoch, wo durch das LEFT JOIN ein NULL korrekt erzeugt wird, wird es durch die WHERE -Bedingung wieder eliminiert
Hat jemand da mal einen Anstoß parat, bin hier gerade auf dem Draht ....
Danke schonmal
denke dass hier ist tricky:
Ich will die in Access (Jet) SQL mögliche Transform- Query in MySQL darstellen. Folgende Ausgangstabellen (gekürzt):
-----------------------------
| table orders |
-----------------------------
| oid (PK) | datum ....
-----------------------------
| 1 | 20051202 |
| 2 | 20051203 |
| 3 | 20051203 |
----------------------------------------------
| table orderpos |
----------------------------------------------
| oid (PK)| pid (PK) | ordered (int).
----------------------------------------------
| 1 | 1 | 10 |
| 1 | 3 | 7 |
| 1 | 4 | 12 |
| 2 | 2 | 21 |
| 3 | 1 | 1 |
| 3 | 2 | 1 |
| 3 | 3 | 2 |
| 3 | 4 | 1 |
----------------------------------------
table products
----------------------------------------
pid | beschreibung | Preis ....
----------------------------------------
| 1 | Baum | 6 |
| 2 | Haus | 6 |
| 3 | Bach | 6 |
| 4 | Berg | 6 |
____________________________
| table orders |
-----------------------------
| oid (PK) | datum ....
-----------------------------
| 1 | 20051202 |
| 2 | 20051203 |
| 3 | 20051203 |
----------------------------------------------
| table orderpos |
----------------------------------------------
| oid (PK)| pid (PK) | ordered (int).
----------------------------------------------
| 1 | 1 | 10 |
| 1 | 3 | 7 |
| 1 | 4 | 12 |
| 2 | 2 | 21 |
| 3 | 1 | 1 |
| 3 | 2 | 1 |
| 3 | 3 | 2 |
| 3 | 4 | 1 |
----------------------------------------
table products
----------------------------------------
pid | beschreibung | Preis ....
----------------------------------------
| 1 | Baum | 6 |
| 2 | Haus | 6 |
| 3 | Bach | 6 |
| 4 | Berg | 6 |
____________________________
_____________________________________
| oid | datum | pid_1 | pid_2 | pid_3 | pid_4 ....
-----------------------------------------------------------
| 1 | 20051202 | 10 | NULL | 7 | 12 |
| 2 | 20051202 | NULL | 21 | NULL | NULL|
| 3 | 20051202 | 1 | 1 | 2 | 1 |
-----------------------------------------------------------
| oid | datum | pid_1 | pid_2 | pid_3 | pid_4 ....
-----------------------------------------------------------
| 1 | 20051202 | 10 | NULL | 7 | 12 |
| 2 | 20051202 | NULL | 21 | NULL | NULL|
| 3 | 20051202 | 1 | 1 | 2 | 1 |
-----------------------------------------------------------
per PHP wird dynamisch eine SQL Abfrage erstellt die (hier jetzt statisch) etwa so aussieht:
PHP-Code:
SELECT o.oid, o.datum , p1.ordered pid_1, p2.ordered pid_2, p3.orderd pid_3, p4.orderd pid_4
FROM orders o
LEFT JOIN orderpos p1 ON o.oid=p1.pid
LEFT JOIN orderpos p2 ON o.oid=p2.pid
LEFT JOIN orderpos p3 ON o.oid=p3.pid
LEFT JOIN orderpos p4 ON o.oid=p4.pid
WHERE
p1.pid = 1 AND
p2.pid = 2 AND
p3.pid = 3 AND
p4.pid = 4 AND
Hat jemand da mal einen Anstoß parat, bin hier gerade auf dem Draht ....
Danke schonmal
Kommentar