Hackschnitzel Geschrieben 23. November 2006 Teilen Geschrieben 23. November 2006 Hallo Leute, ich hab zwei Fragestellungen auf eine Tabelle, komme aber irgendwie auf kein Ergebniss. Ich hoffe von euch kann mir jemand helfen. Ich hab folgende Tabelle: Bestellnummer Artikel Preis 0001 Cola 10 0001 Bier 10 0001 Sprudel 20 0002 Bier 20 0002 Cola 10 0003 Limo 15 0003 Sprudel 10 0003 Cola 20 ... ... ... Tabelle ist natürlich superlang! Meine erste Fragestellung wäre: Wieviel Bestellungen mit 3 Artikel gibt es? Meine zweite Fragestellung wäre: Wie ist der Durchschnittspreis aller Bestellungen mit Bier und wie der Durchschnittspreis aller Bestellungen ohne Bier? Ich hoffe ihr wisst wie ich es meine. Schonmal Danke im Vorraus. Gruss Hackschnitzel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-glp--ka- Geschrieben 23. November 2006 Teilen Geschrieben 23. November 2006 in excel ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hackschnitzel Geschrieben 24. November 2006 Autor Teilen Geschrieben 24. November 2006 Ganz normal in SQL. Es kann auch eine Prozedur sein, aber am liebsten wäre mir ne ganz einfache Select-Anweisung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 24. November 2006 Teilen Geschrieben 24. November 2006 //Tabelle test (t_bstNr INT, t_article VARCHAR, t_preis FLOAT) //Bestellungen mit 3 Artikeln SELECT t_bstNr FROM test GROUP BY t_bstNr HAVING COUNT(t_bstNr) = 3; //DS-Preis der Artikel aller Bestellungen mit Bier SELECT t1.t_bstNr, (SUM(t1.t_preis) / COUNT(t1.t_bstNr)) fPreisDS FROM test AS t1 LEFT JOIN test AS t2 ON t2.t_bstNr=t1.t_bstNr AND t2.t_article='Bier' WHERE t2.t_bstNr IS NOT NULL GROUP BY t1.t_bstNr; //DS-Preis der Artikel aller Bestellungen ohne Bier SELECT t1.t_bstNr, (SUM(t1.t_preis) / COUNT(t1.t_bstNr)) AS fPreisDS FROM test AS t1 LEFT JOIN test AS t2 ON t2.t_bstNr=t1.t_bstNr AND t2.t_article='Bier' WHERE t2.t_bstNr IS NULL GROUP BY t1.t_bstNr; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hackschnitzel Geschrieben 24. November 2006 Autor Teilen Geschrieben 24. November 2006 Das werde ich sofort mal versuchen. Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hackschnitzel Geschrieben 24. November 2006 Autor Teilen Geschrieben 24. November 2006 Also das erste hat wunderbar funktioniert. Das zweite zwar auch, aber ich brauch es ein bissl anders. Wenn ich nochmal auf das Beispiel gehe, dass ich oben geschrieben hab. Nehmen wir an, es gab nur diese drei Bestellungen. Dann möcht ich das folgendermaßen: Mit Bier: Hier hab ich Bestellung 0001. Also mach ich 10 + 10 + 20 = 40 Dann hab ich Bestellung 0002. Also mach ich 20 + 10 = 30. Jetzt nehm ich die 30 (Preis 0001) + 40 (Preis 0002) / 2 (Anzahl Bestellungen) Mein Durchschnittspreis aller Bestellungen mit Bier ist 35 €. Ohne Bier: Hier hab ich Bestellung 0003. Also mach ich 15 + 10 + 20 = 45 Jetzt nehm ich die 45 (Preis 0003) / 1 (Anzahl Bestellungen) Mein Durchschnittspreis aller Bestellungen ohne Bier ist 45 €. Es ist bestimmt eine super einfache Abfrage, aber ich komme einfach nicht drauf. Gruss hackschnitzel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jasper Geschrieben 24. November 2006 Teilen Geschrieben 24. November 2006 Es ist bestimmt eine super einfache Abfrage, aber ich komme einfach nicht drauf. select avg(preis) from (select sum(preis) preis from bestellungen where bestellid in (select bestellid from bestellungen where artikel='bier') group by bestellid); die zweite sieht genauso aus, nur statt 'not in' statt 'in'. -j Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hackschnitzel Geschrieben 28. November 2006 Autor Teilen Geschrieben 28. November 2006 Geht auch irgendwie nicht. Am besten geklappt hat die Abfrage von Monty82, allerdings brauch ich nicht den Durchschnittspreis der einzelnen sondern allen zusammen. Ich hätt noch ne Fragestellung. Wie muss die Abfrage aussehen, wenn ich wissen will welche Artikel kommen zweimal unter einer Bestellnummer vor ? Zum Beispiel bei dieser Tabelle: Bestellnummer Artikel Preis 0001 Cola 10 0001 Bier 10 0001 Sprudel 20 0002 Bier 20 0002 Cola 10 0003 Limo 15 0003 Sprudel 10 0003 Sprudel 20 ... Gruss Hackschnitzel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jasper Geschrieben 28. November 2006 Teilen Geschrieben 28. November 2006 Geht auch irgendwie nicht. gehts irgendwie genauer? was geht nicht? -j Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hackschnitzel Geschrieben 30. November 2006 Autor Teilen Geschrieben 30. November 2006 Zunächst hat er mir was gebracht, wie UDFCALLNAME zwischen ) und ;. Dann hab ich dran rumgeschraubt. Und es kamen nur Fehlermeldungen. Ich muss es nochmal versuchen, dann schreib ich genaueres. Ich hab das gefühl, das er keine select anweisung im from Teil machen kann. Ich dachte immer, das das gar nicht geht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 30. November 2006 Teilen Geschrieben 30. November 2006 Welches DMBS und welche Version wird verwendet? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hackschnitzel Geschrieben 30. November 2006 Autor Teilen Geschrieben 30. November 2006 Wegen der Versionsnummer muss ich mal genauer nachschauen, da ich einen SQL Assistenten in einem anderen Programm nutze. Ich hab das Problem aber jetzt gelöst. Ich habs folgendermaßen gemacht: 1. Summe aller Preise in den betreffenden Bestellungen: select sum(preis) from bestellungen where bestellid in (select bestellid from bestellungen where artikel='bier') group by bestellid; 2. Anzahl Bestellungen, in denen Bier vorkommt: select count(bestellnummer) from bestellungen where bestellid in (select bestellid from bestellungen where artikel='bier') group by bestellid; 3. Hab Summe durch Anzahl geteilt und hab nun mein Ergebnis. Umständlich, aber ging. Dennoch danke für die Hilfe. Jetzt hab ich nur noch ein Problem. Und zwar: Wie muss die Abfrage aussehen, wenn ich wissen will wieviel Artikel kommen zweimal unter einer Bestellnummer vor ? Oder Wieviel Bestellungen enthalten zweimal den gleichen Artikel? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.