Antworten auf deine Fragen:
Neues Thema erstellen

MySQL SUM etwas komplizierter

Refus

aka Noisy

Ich steh grad vor einem Problem. Man könnte das ganze auch einfach über PHP mit mehreren Schleifen lösen, aber ich hoffe es geht auch einfacher (und performanter).

Es gibt zwei Tabellen.
Einmal 'order' in der die Transportkosten drin stehen und 'order_items' indem jeweils ein Produkt mit dem Preis und der bestellten Anzahl steht.

Ich brauche jetzt ein einfaches Ergebnis. Und zwar soll mir in einem Zeitraum oder auch für alle Bestellungen der Gesamtbetrag ausgegeben werden. Sprich eine Berechnung muss erfolgen, Transportkosten + Produkte der Bestellung (Anzahl des Produkts + Preis).
Leider bin ich nicht 100% fit was solche Rechnungen angeht und auch relativ gut gescheitert.
Mein aktueller Query sieht so aus und produziert schon halbwegs was ich brauche
Code:
SELECT serial, SUM(`amount` * `price_per_unit`) + shipping_costs FROM `order`, `order_items` WHERE order_items.SerialOrder = order.serial GROUP BY `SerialOrder`
Aktuell wird mir jetzt jede Bestellung mit Serial und Gesamtpreis angezeigt, gibt es noch eine Möglichkeit, das alles komplett zusammen zurechnen, wobei dann natürlich die Serial wegfällt.
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL SUM etwas komplizierter

Könntest du bitte die Tabellenstruktur der zwei genannten Tabellen skizzieren (also die relevanten Attribute)? Jeweils ein paar Beispieldatensätze plus eine Beispielabfrage mit richtigem Ergebnis wäre auch nett.



Duddle
 

Refus

aka Noisy

AW: MySQL SUM etwas komplizierter

Klar, ich hab das ganze noch etwas modifiziert mit einer Datumsabfrage, damit man den Gesamtgewinn in einer Zeitspanne ansehen kann.
order:
Code:
serial 	paypal_id 	date 	street 	zip_code 	city 	state 	country 	name 	surname 	email 	transaction_id 	shipping_costs 	dhl_tracking 	dhl_cancel 	packed 	shipped
order_items:
Code:
id 	SerialOrder 	productcode 	amount 	price_per_unit

Neue Abfrage.
Code:
SELECT `serial`, `date`,
 SUM(`amount` * `price_per_unit`) + `shipping_costs` FROM `order`, 
`order_items` WHERE `SerialOrder` = `serial` AND `date` BETWEEN 
'2011-01-08 00:00:00' AND '2011-01-11 00:00:00' GROUP BY `SerialOrder`
Ergbnis:
Code:
serial        | date                | SUM(`amount` * `price_per_unit`) + `shipping_costs`
2011010900030 	2011-01-09 18:02:50 	2.90
2011010900031 	2011-01-09 18:21:04 	3.00
2011010900032 	2011-01-09 19:20:08 	3.00
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL SUM etwas komplizierter

Ist das Ergebnis denn das, was du willst? Für mich sieht das nach einer Lösung aus, aber es wird aus dem Beispiel nicht deutlich.



Duddle
 

Refus

aka Noisy

AW: MySQL SUM etwas komplizierter

Sagen wir mal so, ich kann mit dem Ergebnis leben, müsste es nur weiter verarbeiten.
Aber gäbe es auch eine Möglichkeit Alle Ergebnisse von SUM nochmals zu summieren. Damit hätte ich am Ende dann quasi noch einen Wert übrig, der mir die Gesamteinnahmen aus einem gewissen Zeitraum präsentiert.
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL SUM etwas komplizierter

In SQL ist jedes Zwischenergebnis wieder eine Relation/Tabelle.

Code:
SELECT SUM(`teilsumme`) 
FROM (SELECT `serial`, `date`,
       SUM(`amount` * `price_per_unit`) + `shipping_costs` FROM `order`AS `teilsumme`, 
      `order_items` WHERE `SerialOrder` = `serial` AND `date` BETWEEN 
      '2011-01-08 00:00:00' AND '2011-01-11 00:00:00' GROUP BY `SerialOrder`)

Sollte so funktionieren.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben