kostenloser Webspace werbefrei: lima-city


SQL-Abfrage

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ostritzlan

    ostritzlan hat kostenlosen Webspace.

    Hi,
    Ich habe mal ne frage...
    und zwar haben wir in der Schule einige Aufgaben aufbekommen, in denen wir sql abfragen in MySQL erstellen sollen. Jetzt hänge ich an der letzten Abfrage und weiss nicht so recht weiter, vllt könnt ihr mir helfen.

    Die zu erstellende Abfrage:

    \"eine statistische Auswertung der Bestellung nach Ländern und Jahren, die mindestens folgende Felder enthalten soll: Anzahl der Bestellungen, mengenmäßig umfangreichste Bestellung, durchschnittlicher Wert einer Bestellung.\"

    Die Tabellen sind:
    Artikel(Artikelnummer[primärschlüssel], Artikelname, Liefereinheit, Einzelpreis, Lagerbestand, bestellte einheiten, mindestbestand, Auslaufartikel)

    Bestelldetails(ID[primarschlüssel], Bestellnummer, Artikelnummer, Einzelpreis, Anzahl, Rabatt)

    Bestellungen(Bestellnummer[primärschlüssel, Kundencode, Bestelldatum, Lieferdatum, Versanddatum, Empfänger, Straße, Ort, PLZ, Bestimmungsland)

    Kunden (Kundencode, Firma, kontaktperson, Position, Straße, Ort, Plz, Land, Telefon, Telefax)





  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. also ich find die abfrage ziemlich schwierig...

    eine vollständige Abfrage bekomme ich auch nicht zusammen, habe nur ein paar kleine Ansätze:

    Anzahl der Bestellungen...count(Bestellungen.ID)
    mengenmäßig umfangreichste Bestellung...max(Bestelldetails.Anzahl)
    durchschnittlicher Wert einer Bestellung...AVG(Bestelldetails.Einzelpreis)

    dann zur Zuordnung der Bestelldetails zu einer Bestellung...
    WHERE Bestellungen.Bestellnummer=\'Bestelldetails.Bestellnummer\'

    Sortieren vieleicht so: ORDER BY Kunden.Land ASC, Bestellungen.Bestelldatum ASC

    vieleicht hilft das ein wenig weiter. Die vollständige Lösung würde mich mal interessieren^^

    EDIT: sry, hab da nen kleinen Fehler gemacht. Erst die Tabelle dann die Spalte (z.B.: Kunden.Land)

    Beitrag geändert: 6.1.2008 14:48:38 von stinger5
  4. Autor dieses Themas

    ostritzlan

    ostritzlan hat kostenlosen Webspace.

    Danke erstmal,
    wenn ich die Lösung hab kann ich sie ja mal reinstellen
  5. b****r

    also da hier mindestens 2 tabellen abgefragt werden müssen gibts es keine endlösung

    ich nehme mal an das ihr eine ausgabe in php machen müsst, in dem fall alle abfragen machen wie es schon \"stinger5\" beschrieben hat (wie die querys genau heisen muss man halt nahschauen) in php das in einzelne variablen speichern, und dann einfach tabellarisch ausgeben

    --> eigentlich ganz easy :)

    nachtrag:

    da ich keine lust habe hier vollständige sql-abfragen zu schreiben geben ich dir die vorgehensweise

    1. alle kunden abfragen (select * from kunden)
    2. in einer while schleife, alle kunden durchgehen (while1 mit $i)
    3. in der while1 eine wietere whileschelife durchlaufen lassen, die überprüft ob das land im array $land[$j] drin steht, wenn nicht, dann dazuschreiben
    somit hast du mal alle länder in einem array
    5. alle bestellungen auslesen die dem niedrigesten jahr entsprechen auslesen, und einen counter hochzählen (=Anzahl der Bestellungen), das für alle jahre wiederholen
    6. alle bestelldetails auslesen
    7. die einzelnen summen zu der jeweiligen bestellung zuordnen (while in while schleife), rabat der einzelnen bestellungen abziehen und dann hast alle bestellungen in einem array $bestell_menge
    8. die größte bestellung einfach ausgeben
    $i=0;
    $groeßter = $bestell_menge[0];
    while($bestell_menge){
    if ($bestell_menge[$i+1]>$bestell_menge[$i]){
    $groeßter = $bestell_menge[$i];
    }
    $i++;
    }

    wenn mit \"mengenmäßig umfangreichste Bestellung\" die anahl produkte gemeint ist, dann kannst du dir die summen sparen und läst nur einen counter hochzählen
    9.\"durchschnittlicher Wert einer Bestellung\" damit wird offentlich die durchscnittliche wert jeder einzelnen bestellung gemeint: da nimmst du dir alle bestell-nummern aus der db, und zählst alle artikel die zu der bestellung zugeordnet sind zusammen und dievidierst es durch die anzahl

    --> fertig

    hoffe ich hab bei der aufgabenstellund nichts falsch verstanden und vor allem hoffe ich das ich ne hilfe sein konte :)

    Beitrag geändert: 6.1.2008 3:18:54 von beliar
  6. zwiebeldoener

    Moderator Kostenloser Webspace von zwiebeldoener

    zwiebeldoener hat kostenlosen Webspace.

    verschoben in ->PHP & MySQL

    Bei Rückfragen PN an mich.
  7. Autor dieses Themas

    ostritzlan

    ostritzlan hat kostenlosen Webspace.

    Danke erstmal :thumb:
    @beliar
    Wir sollen da nichts mit php machen, sondern nur mit SQL und um 2 tabellen abzufragen muss man halt mit join arbeiten. :biggrin:


    Beitrag geändert: 6.1.2008 20:28:22 von ostritzlan
  8. dann mach das doch ;)

    FROM Bestellungen INNER JOIN Bestelldetails ON
    Bestellungen.Bestellnummer = Bestelldetails.Bestellnummer
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!