2016-11-24 1 views
0
select eventcode, count(eventcode) * price, min(showdate), max(showdate), price 
from ticket 
group by price; 

imageDer Versuch, Spalten zu vermehren, kann aber nicht die unterschiedliche, wenn in mySQL

Bitte schauen Sie auf das Bild für eine bessere Kontext Gruppierung hinzuzufügen bekommen, aber ich versuche, die Gesamtkosten für jede eventcode zurückzukehren in meine Frage. Aber wenn ich nach Ereigniscode gruppiere, enthält es nicht die verschiedenen Preise, die auftreten können, und gibt nur das erste zurück, das es findet. Gruppierung nach Preis zeigt die verschiedenen Werte, die ich zusammen zurückgeben möchte. Zum Beispiel für Ereigniscode 801 möchte ich die Gesamtpreissumme der 1240 + 2844 + 9850 zurückgeben. Dies ist für eine Aufgabe und ich kann es einfach nicht herausfinden. Ich habe versucht, nach dem Zähler (eventcode) * zu gruppieren, aber ich bekomme einen Fehler für die ungültige Verwendung der Gruppenfunktion. Entschuldigung für die schlecht formulierte Frage, die ich gerade frustriert habe. Danke für jede Hilfe!

Antwort

0

Wenn Sie den Gesamtpreis für jeden eventcode wollen, werden das sollte dann in der group by:

select eventcode, sum(price), min(showdate), max(showdate) 
from ticket 
group by eventcode; 

Hinweise:

  • Diese pro eventcode eine Zeile zurückgibt. So funktioniert group by funktioniert.
  • Sie möchten den Gesamtpreis, also sum(price).
  • Sie möchten keine Spalten in select, die nicht in group by sind und keine Argumente für Aggregationsfunktionen. Daher keine , price.
+0

Vielen Dank, dass Sie sich die Zeit genommen haben zu helfen !! Ich denke, ich habe die Frage schlecht gestellt. Ich habe nach Preis sortiert, um zu zeigen, dass es für jeden Eventcode mehrere Preise gibt, die ich berechnen kann, multipliziert mit der Anzahl der verkauften Tickets zu diesem Preis und dann addiert für die Summe pro Eventcode. Ich möchte nach Ereigniscode gruppieren, aber ich muss die Summe für jeden einzelnen sogar mit den unterschiedlichen Preisen zurückgeben, wenn das Sinn macht. Danke nochmal für all deine Hilfe! – Arthur

+0

@Arthur. . . Ich denke, dass das oben genannte tut, was Sie wollen. Wenn Sie eine "Quantity" -Spalte haben, möchten Sie vielleicht 'sum (Menge * price)'. –

Verwandte Themen