Wapmaster Geschrieben 1. Dezember 2004 Teilen Geschrieben 1. Dezember 2004 Hallo zusammen, nun gehts in die zweite Runde Ich habe eine Produkttabelle, zu nicht allen Produkten befinden sich Bewertungen in einer zweiten Tabelle, es können natürlich auch mehrere pro Produkt sein. Mein Select soll für jedes Produkt alle Bewertungen lesen und den Durchschnitt errechnen, und Produkte mit dem besten Durchschnitt sollen natürlich zuerst zurückgegeben werden. Optimal wäre wenn ich den Durchschnitt zurückbekommen würde, eine bloße Sortierung nach Durchschnitt reicht aber auch. Der Wert der Bewertung ist als INT gespeichert, auf einer Skala von 1 - 10 Mit Mathe in SQL Abfragen hatte ich bisher noch nichts zu tun, ich hoffe ihr könnt mir da irgendwie weiterhelfen? :mod: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pinhead Geschrieben 1. Dezember 2004 Teilen Geschrieben 1. Dezember 2004 Select Produktname , avg(bewertung) from Tabelle1, Tabelle2 where Tabelle1.id = tabelle2.id Group by tabelle1.id ungetestet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Honkytonk Geschrieben 3. Dezember 2004 Teilen Geschrieben 3. Dezember 2004 ungetestet Verstösst auch gegen die Aggregat-Funktion Ich würde es eher so machen (Syntax aus dem MSSQL-Server) SELECT prod.produktid , AVG(bew.bewertung) FROM produkttabelle AS prod LEFT OUTER JOIN bewertungstabelle AS bew ON prod.produktid = bew.produktid GROUP BY prod.productid Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Honkytonk Geschrieben 3. Dezember 2004 Teilen Geschrieben 3. Dezember 2004 Ich vergaß: SELECT prod.produktid , AVG(bew.bewertung) FROM produkttabelle AS prod LEFT OUTER JOIN bewertungstabelle AS bew ON prod.produktid = bew.produktid GROUP BY prod.productid [COLOR=Red]ORDER BY AVG(bew.bewertung) DESC[/COLOR] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pinhead Geschrieben 6. Dezember 2004 Teilen Geschrieben 6. Dezember 2004 Verstösst auch gegen die Aggregat-Funktion Was ist denn die Aggregat-Funktion ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wapmaster Geschrieben 7. Dezember 2004 Autor Teilen Geschrieben 7. Dezember 2004 @honkytonk: das funktioniert so leider nicht. Invalid user of group function sagt er. Hab mich ein bisschen umgeschaut, aber bin nicht wirklich schlau geworden. Hat jemand vielleicht anhand von irgendwelchen Links oder guten Buchtipps was zum lesen für mich? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BenjieAul Geschrieben 8. Dezember 2004 Teilen Geschrieben 8. Dezember 2004 Vielleicht hilft es hier einigen, wenn du sagst, welches Sql du benutzt, bzw welche DAtenbank, gibt ja genug davon. Bsp.: MySql oder MSSQL? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wapmaster Geschrieben 8. Dezember 2004 Autor Teilen Geschrieben 8. Dezember 2004 achja mysql version 4.xx also ich nehme an was recht stabiles aber auch aktuell bin leider so auch noch nicht weitergekommen 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.