50 likes | 161 Views
Lagereinheit. LeNr. LeaNr. ANr. Stückzahl. Gewicht. LhNr. LE-001. LEA-04. A-001. 2. 4.00. LH-001. LE-002. LEA-02. A-004. 20. 20.00. LH-002. LE-003. LEA-01. A-005. 42. 21.00. LH-002. LE-004. LEA-05. A-017. 175. 175.00. LH-006. LE-005. LEA-02. A-006. 3. 4.50.
E N D
Lagereinheit LeNr LeaNr ANr Stückzahl Gewicht LhNr LE-001 LEA-04 A-001 2 4.00 LH-001 LE-002 LEA-02 A-004 20 20.00 LH-002 LE-003 LEA-01 A-005 42 21.00 LH-002 LE-004 LEA-05 A-017 175 175.00 LH-006 LE-005 LEA-02 A-006 3 4.50 LH-004 LE-006 LEA-03 A-002 6 0.30 LH-007 LE-007 LEA-05 A-015 85 212.50 LH-006 LE-008 LEA-01 A-010 30 15.00 LH-003 LE-009 LEA-02 A-020 1 6.00 LH-003 LE-010 LEA-04 A-008 13 5.20 LH-007 LE-011 LEA-01 A-011 16 16.00 LH-005 LE-012 LEA-02 A-019 4 12.00 LH-003 LE-013 LEA-01 A-012 12 12.00 LH-005 LE-014 LEA-04 A-001 1 2.00 LH-001 LE-015 LEA-02 A-006 2 3.00 LH-004 LE-016 LEA-02 A-015 42 105.00 LH-005 Gruppierung (5) “Gesamtgewichte und Stückzahlen der Lagereinheiten bezogen auf die Lagerhilfsmittel”: select LhNr, sum(Gewicht) as Gesamtgewicht, sum(Stückzahl) as Gesamtzahl from Lagereinheit group by LhNr; LhNr Gesamtgewicht Gesamtzahl LH-001 6.00 3 LH-002 41.00 62 LH-003 33.00 35 LH-004 7.50 5 LH-005 133.00 70 LH-006 387.50 260 LH-007 5.50 19
Lagereinheit LeNr LeaNr ANr Stückzahl Gewicht LhNr LE-001 LEA-04 A-001 2 4.00 LH-001 LE-002 LEA-02 A-004 20 20.00 LH-002 LE-003 LEA-01 A-005 42 21.00 LH-002 LE-004 LEA-05 A-017 175 175.00 LH-006 LE-005 LEA-02 A-006 3 4.50 LH-004 LE-006 LEA-03 A-002 6 0.30 LH-007 LE-007 LEA-05 A-015 85 212.50 LH-006 LE-008 LEA-01 A-010 30 15.00 LH-003 LE-009 LEA-02 A-020 1 6.00 LH-003 LE-010 LEA-04 A-008 13 5.20 LH-007 LE-011 LEA-01 A-011 16 16.00 LH-005 LE-012 LEA-02 A-019 4 12.00 LH-003 LE-013 LEA-01 A-012 12 12.00 LH-005 LE-014 LEA-04 A-001 1 2.00 LH-001 LE-015 LEA-02 A-006 2 3.00 LH-004 LE-016 LEA-02 A-015 42 105.00 LH-005 Gruppierung (6) “Nummern der Lagereinheitarten, für die die Stückzahl der in den Lagereinheiten verpackten Artikel 35 oder mehr beträgt”: select LhNr, sum(Gewicht) as Gesamtgewicht, sum(Stückzahl) as Gesamtzahl from Lagereinheit group by LhNr havingsum(Stückzahl) >= 35; LhNr Gesamtgewicht Gesamtzahl LH-002 41.00 62 LH-003 33.00 35 LH-005 133.00 70 LH-006 387.50 260
Gruppierung (7) Beispiel: “Der nach Stückzahl am häufigsten gelagerte Artikel des Lieferanten 'Bosch'”: select A.ANr, sum(Stückzahl) as Gesamtzahl from ArtikelArt A, Lagereinheit Le where A.ANr = Le.ANr and Lieferant = 'Bosch' group by A.ANr having sum(Stückzahl) >= all ( selectsum(Stückzahl) from ArtikelArt A, Lagereinheit Le where A.ANr = Le.ANr and Lieferant = 'Bosch' group by A.Anr );
Gruppierung (8) • Generell können in SQL Attributwerte, die aus einer Gruppierung entstammen, nicht mit nichtgruppierten Attributen kombiniert werden. • Die folgende sinnvolle Plausibilitätsprüfung ist also nicht möglich: selectsum(Le.Gewicht) - Lh.Gewicht as Differenz from Lagereinheit Le, Lagerhilfsmittel Lh where Lh.LhNr = 'LH-001' and Le.LhNr = Lh.LhNr; • Erklärung: Unter Lh.Gewicht existiert ein Wert pro Tupel der Verbindungsrelation, sum(Le.Gewicht) ist jedoch nur für die Verbindungsrelation insgesamt definiert.
Gruppierung (9) Trickreiche Lösung: • Da immer auf gleiche Lagerhilfsmittel abgehoben wird - das mit der Nummer 'LH-001' - ist auch dessen Lh.Gewicht das selbe. selectsum(Le.Gewicht) - max(Lh.Gewicht) as Differenz from Lagereinheit Le, Lagerhilfsmittel Lh where Lh.LhNr = 'LH-001’ and Le.LhNr = Lh.LhNr; Differenz 0.00