Daniel`s IV II Blog @ JKU
Mittwoch, 2. April 2008
3. Hausübung
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.Nr

Verwende 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 asc

Gibt 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
FROM Kunde, Buch, Auftragspos, Auftrag WHERE Kunde.Nr=Auftrag.Kundennummer and Auftrag.Nr= Auftragspos.Auftragsnummer and Auftragspos.Buchnummer =Buch.Nr and Auftrag.Datum <= "2002-12-31" and Auftrag.Datum >= "2000-01-01"
group by Kunde.Nr
order by Kunde.Nr


Ergänzen Sie die zeitlich abgegrenzten Auswertungen um einen weiteren Filter, der sich an der durchschnittlichen Anzahl der Aufträge orientiert.
Dokumentieren Sie alle, für die Lösung der Aufgabe durchgeführten Abfragen in Ihrem Weblog und beschreiben Sie den Zweck jeder durchgeführten Abfrage.

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 <= "2002-12-31" and Auftrag.Datum >= "2000-01-01" and Kunde.Nr = 2 group by Kunde.Nr order by Kunde.Nr

Und diese Abfrage war jetzt speziell auf Kunde Nr 2 gerichtet ...

... comment

 
patrick.fuehrer.Uni-Linz, Sonntag, 13. April 2008, 11:02
hi

arbeite mit dem Befehl "between", dann tust du dir mit der Datumseingrenzung leichter

bg

... link  


... comment

Online for 6105 days
Last update: 2008.11.05, 22:05
status
You're not logged in ... login
menu
... home
... topics
... galleries

... ::collabor:: home
search
 
calendar
April 2008
Mo
Di
Mi
Do
Fr
Sa
So
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
 
 
 
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)

xml version of this page

made with antville