MySQL Abfrage (Funktionen und Gruppierung)

  • Hi,


    ich hab eine Datenbank und dort die Tabelle: artikel,ausgaenge,eingaenge (lieferanten/verkaeufer ist derzeitig unwichtig)


    Nun hab ich folgende zwei Aufgaben (Aufgabenstellung ist unverständlich für mich):


    1. Ermitteln Sie die Anzahl der verkauften Artikel pro Artikelnummer
    2. Ermitteln Sie die Anzahl der Bestelleinheiten pro Artikelnummer



    Hier ein Bild von den Tabellen:





    Bei "Bearbeiten" dann einfach die Suchabfrage eintragen.


    Jedenfalls verstehe ich die Aufgabenstellung nicht ganz.


    Was ist mit "Anzahl der verkauften Artikel" gemeint?


    Ist etwas die Tabelle "ausgaenge"; Spalte "Anzahl" gemeint ? Falls ja, wozu dann eine Abfrage machen?


    Möchte jetzt unbedingt keine Lösung haben, sondern nur eine genauere Formulierung der Aufgabenstellung.



    Derzeitiges Thema:


    sum,avg,min,max,count

  • IN DER TABELLE AUSGANG HASTE DENKE ICH MAL DIE AUFTRÄGE ALSO EIN KUNDE BESTELLT 100 VON ARTIKEL A DER ANDERE 25 VON B UND DAS MUSST DU ZUSAMMEN RECHNEN


    edit: sry für capslock



    Also


    $result = mysql_query("SELECT * FROM ausgang WHERE ArtikelNr = xxx");
    $count = 0;
    $anzahl = 0;
    while($row = mysql_fetch_array($result)){
    $count++;
    $anzahl += $row->Anzahl;
    }


    in $count haste dann also deine verkauften artikel für artikel xxx
    in $anzahl haste die Verkauften einheiten für artikel xxx


    MfG Sick^


    zu 1. $ergebnisAnzahlDerArtikel =

  • Ich glaub er braucht es als MySQL Query.


    Ich vermute mal eingänge sind die Bestellungen und ausgänge die verkäufe.
    Daher hast du unter eingaenge die noch ausstehenden Lieferungen und unter ausgaenge die bereits verkauften Artikel.
    Die Spalte Anzahl stellt hierbei die Anzahl der bestellten oder gelieferten Artikel dar.


    Anzahl der verkauften Artikel:
    Du sollst nach ArtNr gruppieren und das Feld Anzahl zusammenzählen.



    SQL
    1. SELECT ArtNr, SUM(Anzahl) AS Anzahl
    2. FROM ausgaenge
    3. GROUP BY ArtNr


    Sollte so stimmen.


    Die zweite Aufgabe solltest du selbst lösen können.


    Gruß
    florian0

  • ah sry, ist nich mysql, sonder phpmyadmin...


    xampp hat mich da gerade verwirrt...


    werde mich aber mal jetzt selbst an die lösung ranmachen, kann mir es jetzt so ungefähr vorstellen, danke


    edit: ja, glaube das sollte die lösung sein florian. bin da selbst auch darauf gekommen, jedoch ist die doch sowas von simpel o.O.... hätte da halt irgendwie schon mehr erwartet von der aufgabe, deswegen habe ich nochmal extra nachgefragt

  • Die nächste Lösung wäre dann also:


    SQL
    1. SELECT ArtNr, SUM(Bestelleinheit) AS Anzahl_Bestelleinheit
    2. FROM artikel
    3. GROUP BY ArtNr


    ,wenn ich das richtig verstanden habe


    edit: weitere Aufgabe


    3. Ermitteln Sie die Anzahl der verkauften Artikel pro Verkäufernr


    Lösung:


    SQL
    1. SELECT VerkNr, SUM(Anzahl) AS Anzahl
    2. FROM ausgaenge
    3. GROUP BY VerkNr


    Bitte nur um Korrektur, wenn es richtig ist, dann kann der Thread closed werden.

  • Die nächste Lösung wäre dann also:


    SQL
    1. SELECT ArtNr, SUM(Bestelleinheit) AS Anzahl_Bestelleinheit
    2. FROM artikel
    3. GROUP BY ArtNr


    SUM(Bestelleinheit) -> Du summierst ja mit dem Spaltennamen. Der Spaltenname wäre aber laut Screenshot Anzahl_Bestelleinheit.
    Mit AS gibt man einer Spalte nur einen anderen Namen. Das hat mit dem Summieren an sich nichts zu tun.


    Gruß
    florian0

  • SUM(Bestelleinheit) -> Du summierst ja mit dem Spaltennamen. Der Spaltenname wäre aber laut Screenshot Anzahl_Bestelleinheit.
    Mit AS gibt man einer Spalte nur einen anderen Namen. Das hat mit dem Summieren an sich nichts zu tun.


    Gruß
    florian0


    Das weiß ich ja auch, dachte aber, dass ich die Spalte "Bestelleinheit" hernehmen sollte


    also anstatt


    SQL
    1. SELECT ArtNr, SUM(Bestelleinheit) AS Anzahl_Bestelleinheit
    2. FROM artikel
    3. GROUP BY ArtNr


    folgendes:


    SQL
    1. SELECT ArtNr, SUM(Anzahl_Bestelleinheit) AS Anzahl
    2. FROM eingaenge
    3. GROUP BY ArtNr
  • Mir ist gerade was aufgefallen:


    Anzahl_Bestelleinheit in der Eingangstabelle ist nicht die Anzahl der bestellten Artikel.
    In der Tabelle Artikel ist ja die Spalte Bestelleinheit. Dies ist die Einheit in der Artikel bestellt werden.
    Bsp:
    Bestelleinheit 100
    Anzahl 2


    Anzahl der bestellten Artikel: 200


    Bestelleinheit * Anzahl_Bestelleinheit = Anzahl Bestellter Artikel


    d.H. du brauchst Daten aus zwei Tabellen.


    Im Kopf bekomm ich den Query grade nicht zusammen. Muss ausprobieren.


    Gruß
    florian0

  • Hätte da 2 Lösungen, wüsste aber nicht, welche ich hernehmen sollte


    SQL
    1. SELECT artikel.ArtNr, artikel.Bestelleinheit, eingaenge.Anzahl_Bestelleinheit, (Bestelleinheit*Anzahl_Bestelleinheit) AS Gesamt
    2. FROM `eingaenge`
    3. INNER JOIN artikel
    4. ON artikel.artnr=eingaenge.artnr
    5. GROUP BY ArtNr



    oder ohne das GROUB BY ArtNr


    SQL
    1. SELECT artikel.ArtNr, artikel.Bestelleinheit, eingaenge.Anzahl_Bestelleinheit, (Bestelleinheit*Anzahl_Bestelleinheit) AS Gesamt
    2. FROM `eingaenge`
    3. INNER JOIN artikel
    4. ON artikel.artnr=eingaenge.artnr


  • Ja, bei uns wurde, ich sag mal wegen einem "Missgeschick", der Join zuerst drangenommen, danach das mit sum, count, ... Ansonsten wäre auch SUM, COUNT, etc. vor JOIN gekommen


    War jedoch an den 2 Tagen nicht da, als wir das mit dem JOIN gelernt haben :/
    jedenfalls kann ich es aber bis jetzt schon so teilweise... :)


    zur Aufgabe:


    Also GROUB BY da lassen, alles klar.


    Danke für deine Hilfe. Morgen werden dann die Aufgaben gelöst, mal schauen, ob meine Lösungen (hab ja mehrere gemacht, das waren aber nur die 3 Aufgaben, die für mich etwas unverständlich waren) richtig sind :).