Daniel`s IV II Blog @ JKU |
Mittwoch, 2. April 2008
3. Hausübung
Daniel.HELLEIS.Uni-Linz, 22:54h
Die Trainings-Datenbank wurde am 3. April überarbeitet. In der Tabelle "Auftrag" befanden sich ca. 1600 Datensätze (Tupel), die keine Entsprechung in der Tabelle "Auftragspos" hatten. Diese Tupel wurden entfernt, da es dafür keine sinnvolle Interpretation aus betriebswirtschaftlicher Sicht gab.
Ausgehend von folgender Abfrage auf SQL.IDV.EDU SELECT Kunde.Nr, Kunde.Nachname, COUNT(Auftrag.Nr) FROM Kunde, Auftrag WHERE Kunde.Nr = Auftrag.Kundennummer GROUP BY Kunde.Nr ORDER BY Kunde.Nr sollten Sie schrittweise eine Auswertung entwicklen, die betriebswirtschaftlich wertvolle Aussagen produziert. Gehen Sie wie folgt vor: Ergänzen sie obenstehende Abfrage um den Umsatz (Preis * Menge) je Kunde. Achten Sie darauf, dass die Anzahl der getätigten Aufträge "COUNT(Auftrag.Nr)" korrekt ist, bzw. im Vergleich zur Ausgangssituation unverändert. 1) SELECT Kunde.Nr, Kunde.Nachname, sum(Buch.Preis*Auftragspos.Menge) as Umsatz FROM Kunde, Buch, Auftragspos, Auftrag WHERE Kunde.Nr=Auftrag.Kundennummer and Auftrag.Nr= Auftragspos.Auftragsnummer and Auftragspos.Buchnummer =Buch.Nr group by Kunde.Nr aber da fehlen jetzt leider die Anzahl der Aufträge!? SELECT Kunde.Nr, Kunde.Nachname, sum(Buch.Preis*Auftragspos.Menge) as Umsatz, count(distinct Auftrag.Nr) FROM Kunde, Buch, Auftragspos, Auftrag WHERE Kunde.Nr=Auftrag.Kundennummer and Auftrag.Nr= Auftragspos.Auftragsnummer and Auftragspos.Buchnummer =Buch.Nr group by Kunde.NrVerwende den distinct Befehl deshalb, damit nur 1x gezählt wird und nicht in jedem Feld ...Ermitteln Sie in einem Weiteren Schritt die Verteilung der Aufträge über die Zeit (Jahre), OHNE dass dabei Auswertungen (Anzahl der Aufträge bzw. Auftragssummen) ermittelt werden. Select * from Auftrag where Auftrag.Kundennummer = 2 Gibt an wieviele Aufträge Kundennummer 2 hat Select * from Auftrag group by Auftrag.Nr order by Auftrag.Kundennummer ascGibt alle Aufträge bzw. die dazupassende Jahreszahl dazu ...Grenzen Sie die Abfrage 1 in sinnvolle Zeitabschnitte ein. SELECT Kunde.Nr, Kunde.Nachname, sum(Buch.Preis*Auftragspos.Menge) as Umsatz, count(distinct Auftrag.Nr), Auftrag.Datum FROM Kunde, Buch, Auftragspos, Auftrag WHERE Kunde.Nr=Auftrag.Kundennummer and Auftrag.Nr= Auftragspos.Auftragsnummer and Auftragspos.Buchnummer =Buch.Nr and Auftrag.Datum <= "2007-12-31" and Auftrag.Datum >= "2006-01-01" group by Kunde.Nr order by Auftrag.Datum Also irgendwas stimmt da leider nicht ... Tja hat ja immerhin einen ganzen Tag gedauert ... aber es gibt leider keine Aufträge zw. 2007 - 2003 SELECT Kunde.Nr, Kunde.Nachname, sum(Buch.Preis*Auftragspos.Menge) as Umsatz, count(distinct Auftrag.Nr), Auftrag.Datum |
Online for 6105 days
Last update: 2008.11.05, 22:05 status
You're not logged in ... login
menu
search
calendar
recent updates
Zwei Sonderaufgaben für...
Reorganisieren Sie Ihren Lernblog, er ist in der... by Hans.Mittendorfer.Uni-Linz (2008.11.05, 22:05) Tutorium part II
Select Verlag, count(*) As Buchanzahl from Buch Group... by Daniel.HELLEIS.Uni-Linz (2008.04.15, 09:43) hi
arbeite mit dem Befehl...
hi arbeite mit dem Befehl "between", dann tust du... by patrick.fuehrer.Uni-Linz (2008.04.13, 11:02) hi
sehe ich das so richtig:
Einkauf...
hi sehe ich das so richtig: Einkauf sind die Werte,... by patrick.fuehrer.Uni-Linz (2008.04.10, 08:25) Hilfe!
hilfe excel vs. sql ( sql, 46 KB) kann mir da vielleicht... by Daniel.HELLEIS.Uni-Linz (2008.04.09, 15:19) |