FA Doku-Blog |
Mittwoch, 21. November 2007
Aufgabe 4 - Analyse SQL-Abfragen
florian.allesch.Uni-Linz, 22:12h
A) Auftragsanzahl und DISTINCT
Ich möchte in diesem Rahmen gleich nochmals zur Problematik der Zählung der Aufträge zurückkommen. Wie in der LVa besprochen, darf sich ein Unterschied zwischen einer Zählung des Schlüsselelements Auftrag.Nr und der Autragspos.Auftragsnummer ergeben. Diese differrierenden Ergebnisse sollten sich mittels des Befehls DISTINCT verhindern lassen, da ja hier die Mehrfachnennung der Auftragsnummer in der Tabelle Auftragspos ignoriert werden sollte. Die neuerlichen Tests mit den 4 möglichen Abfragevarienten liefern aber nicht die logisch-prognostizierten Ergebnisse: VAR 1: Bezug Auftrag.Nr + DISTINCT SELECT Auftrag.Kundennummer, Kunde.Vorname, Kunde.Nachname, count(distinct Auftrag.Nr) as Aufträge FROM Auftrag, Kunde WHERE Kunde.Nr=Auftrag.Kundennummer group by Kunde.Nr order by 4 desc Max Aufträge: 9
VAR 2: Bezug Auftrag.Nr ohne DISTINCT SELECT Auftrag.Kundennummer, Kunde.Vorname, Kunde.Nachname, count(Auftrag.Nr)as Aufträge FROM Auftrag, Kunde WHERE Kunde.Nr=Auftrag.Kundennummer group by Kunde.Nr order by 4 desc Max Aufträge: 13
VAR 3: Bezug Auftragspos.Auftragsnummer + DISTINCT SELECT Auftrag.Kundennummer, Kunde.Vorname, Kunde.Nachname, count(distinct Auftragspos.Auftragsnummer)as Aufträge FROM Auftrag, Kunde, Auftragspos WHERE Kunde.Nr=Auftrag.Kundennummer and Auftrag.Nr=Auftragspos.Auftragsnummer group by Kunde.Nr order by 4 desc Max Aufträge: 5
VAR 4: Bezug Auftragspos.Auftragsnummer ohne DISTINCT SELECT Auftrag.Kundennummer, Kunde.Vorname, Kunde.Nachname, count(distinct Auftragspos.Auftragsnummer) as Aufträge FROM Auftrag, Kunde, Auftragspos WHERE Kunde.Nr=Auftrag.Kundennummer and Auftrag.Nr=Auftragspos.Auftragsnummer group by Kunde.Nr order by 4 desc Max Aufträge: 138
-> hier ergibt sich nach Überprüfung einfach die gleiche Anzahl wie wenn man nach den Auftragspositionen selbst sucht! Am Ende komme ich hierzu derzeit zu 2 Schlussfolgerungen: 1. da nicht alle Aufträge der Tabelle Auftrag auch in der Tabelle Auftragspos mit aufgeschlüsselten Daten vorhanden sind, ergibt sich bei Einbeziehung der Tabelle Auftragspos eine Abweichung (Auftragszahl, Umsatz pro Auftrag, DB pro Auftrag, …) 2. gibt es ein Problem im Zusammenhang mit der Schlüsselelementfunktion der Auftrag.Nr wenn hier Abfragergebnisse durch DISTINCT abgeändert werden. Die Zählproblematik lässt sich nach genauerer Betrachtung der konkreten Auflistung der Aufträge des Kunden „Kritten“ schnell auf tatsächlich doppelt vorhandene Auftragsnummern auch in der Tabelle Auftrag zurückführen:
also 13 gelistete Aufträge – aber nur 9 Auftragsnummern! B) Detailbetrachtung eines Kunden (Erdl) Zunächst die Grunddaten des Kunden Erdl:
Dann die dazugehörigen Auftragsdaten:
Nun die Details der Aufträge des Kunden Erdl:
Und jetzt schließlich auch die Daten zu den Auftragspositionen:
Wie schon nach der Analyse in A) vermutet, zeigt sich auch bei der genauen Ansicht eines einzelnen Kunden das Problem der doppelten Auftragsnummer - im konkreten Fall Erdl geht es um 4 exakt gleiche, doppelt in der Datenbank vorhandene, Aufträge. Mit den exportierten Daten kann man nun die Daten richtig stellen und folgende Analyse erstellen:
C) Erkenntnisse & Auswirkungen Nach den bisherigen Erkenntnissen stellt sich die Frage, ob in der Tabelle Auftrag einfach alle Auftragsnumern doppelt vorhanden sind und man somit die Ergebnisse nur absolut korrigieren muss - sie aber relativ gesehen aussagekräftig sind? Aufträge in der Tabelle Auftrag:
Nun kann an also davon ausgehen, dass wirklich alle Aufträge in doppelter Form eingetragen sind - Alle? Nein, die Kunden die nur einen einzigen Auftrag abgebeben haben (ca. 180 Personen) finden sich nur mit einer einfachen Auftragsnummer in der Tabelle Auftrag. Am Ende stellt sich zB für die KollegInnen die sich mit ABC-Analysen beschäftigt haben, die Problematik, dass die Berechnung des totalen Gesamtumsatzes (Zugriff auf Buch & Auftragspos) und die Berechnungen der einzelnen Kundengesamtumsätze (Zugriff Kunde, Auftrag, Auftragspos, Buch) durch die Problematik der teilweise doppelten Aufträge nicht in Einklang zu bringen sind. Eine "über den Daumen"-Kalkulation zeigt aber, dass sich bei Halbierung der Kundenumsätze auf Grund der doppelten Auftragszahlen ein doch relativ stimiges Vergleichsergebnis ergibt:
… zu den nun eigentlich angedachten Ausführungen zu den Problemen der Tabelle AUFTRAGSPOS, darf ich hier jetzt zum Kollegen Christian Hackl (Link) verweisen - dem heute auch aufgefallen ist, dass hier gleich alle Daten zu den Aufträgen mit Nummern über 1000 fehlen! Schöne Grüße, fa ... comment
Christian.Feigl.Uni-Linz,
Dienstag, 27. November 2007, 23:43
Die Ergebnisse stimmen mit jenen meiner Abfrage überein, wobei mein Fokus auf einem Kunden (Cummings mit der Kundennummer 94) lag.
... link ... comment
patrick.fuehrer.Uni-Linz,
Sonntag, 2. Dezember 2007, 08:47
sehr gute Arbeit
... link ... comment |
Online for 6251 days
Last update: 2012.03.09, 14:49 status
You're not logged in ... login
menu
search
calendar
recent updates
Mit den Standards im...
Mit den Standards im Bezug auf das Internet muss ich... by Michael.Erbschwendtner.Uni-Linz (2008.04.24, 15:03) Standards *sind* nicht...
.. sondern Realität. Der wohl wichtigste Beitrag... by Hans.Mittendorfer.Uni-Linz (2008.04.24, 13:01) Sehr interessant, informativ...
Sehr interessant, informativ und gut bebildert. In... by Michael.Erbschwendtner.Uni-Linz (2008.04.24, 00:34) Netzeffekte & "Locked-In"
B&I Aufgabe 1: Netzwerkeffekte & "Locked-In" Schon... by florian.allesch.Uni-Linz (2008.04.21, 21:58) Tut mir natürlich...
Tut mir natürlich leid - der liebe Jericho bastelt... by florian.allesch.Uni-Linz (2008.01.29, 17:21) |