php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.10.2009, 08:29  
Benutzer
 
Registriert seit: 30.04.2008
Beiträge: 35
majorbenks befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Sum in einem Join

Hi Zusammen

Ich habe eine Tabelle Customers und eine Sales. Nun wollte ich ausgeben, wer für welche Summe eingekauft hat. Deshalb mein Query:
Code:
SELECT customer.vorname, customer.nachname, SUM(sales.amount) AS Amount
FROM customer Right JOIN sales
ON customer.id = sales.customerId
ORDER BY customer.nachname
Zurück kommt der erste Customer und die Summe aller Einkäufe, inklusive der von anderen Customers.
Weiss jemand warum dass so ist, bzw. wie ich einfach die Summe pro Customer bekommen kann?
majorbenks ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.10.2009, 09:07  
Benutzer
 
Registriert seit: 30.04.2008
Beiträge: 35
majorbenks befindet sich auf einem aufstrebenden Ast
Standard

Ich habe noch ein wenig gegoogelt und zwei Tut-Seiten gefunden, die genau mein Query verwenden und das Resultat bekommen, dass ich eigentlich auch erwaretet habe, nämlich, dass pro Customer alle Verkäufe zusammengezählt werden:

SQL JOIN - SQL Tutorial
SQL JOIN

Nur leider geht das bei mir nicht..

Ist das vielleicht ein Problem von mySQL?
majorbenks ist offline   Mit Zitat antworten
Alt 26.10.2009, 09:17  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Hi, versuchs mal so:

SELECT c.vorname, c.nachname, Sum(s.amount) AS Amount
FROM customer c,sales s
WHERE c.customerid = s.customerid
ORDER BY c.nachname
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 26.10.2009, 09:25  
Benutzer
 
Registriert seit: 30.04.2008
Beiträge: 35
majorbenks befindet sich auf einem aufstrebenden Ast
Standard

Das geht leider nicht.. Es bringt das gleiche Resultat wie meine Abfrage, nämlich:
Max Muster 100$

Statt:
Max Muster 60$
Peter Beispiel 40$
majorbenks ist offline   Mit Zitat antworten
Alt 26.10.2009, 09:30  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Dann fehlt da noch ein GROUP BY c.nachname,c.vorname

oder
SELECT c.vorname, c.nachname, s.amount
FROM customer c,sales s
WHERE c.customerid = s.customerid
ORDER BY c.nachname
HAVING SUM(s.amount)
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 26.10.2009, 09:51  
Benutzer
 
Registriert seit: 30.04.2008
Beiträge: 35
majorbenks befindet sich auf einem aufstrebenden Ast
Standard

Das gibt bei mir folgenden Fehler:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'HAVING SUM(s.amount) LIMIT 0, 30' at line 5

Was meintest du mit Group by?
majorbenks ist offline   Mit Zitat antworten
Alt 26.10.2009, 09:56  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

SELECT c.vorname, c.nachname, Sum(s.amount) AS Amount
FROM customer c,sales s
WHERE c.customerid = s.customerid
ORDER BY c.nachname
GROUP BY c.nachname,c.vorname

Diese $ zeichen, stehen die auch in deiner Tabelle drin?

also sales
amount ....
50$
50$
100$
20$
usw..
oder stehen da NUR zahlen ohne der währung?
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 26.10.2009, 10:33  
Benutzer
 
Registriert seit: 30.04.2008
Beiträge: 35
majorbenks befindet sich auf einem aufstrebenden Ast
Standard

Mmmh.. das Group By geht auch nicht.. Hab ich irgendwas beim mySQL Server nicht richtig eingestellt..?

Nein ich habe die Dollarzeichen nachträglich hinzugefügt. In der Datenbank steht nur die Zahl, als Int
majorbenks ist offline   Mit Zitat antworten
Alt 02.11.2009, 07:55  
Benutzer
 
Registriert seit: 30.04.2008
Beiträge: 35
majorbenks befindet sich auf einem aufstrebenden Ast
Standard

So ich hab nochmal ein wenig rumprobiert. Mit Group By gehts:

SELECT c.vorname, c.nachname, Sum(s.amount) AS Amount
FROM customer c,sales s
WHERE c.customerid = s.customerid
GROUP BY c.nachname,c.vorname
ORDER BY c.nachname

Allerdings muss das GROUP BY vor dem ORDER BY kommen. Mit having hab ichs nicht hingekriegt...

Auf jeden Fall Danke schön
majorbenks ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Abfrage - join, inner join, distinct? Gachet01 Datenbanken 2 27.01.2011 06:49
[Erledigt] left join problem Bernd-m Datenbanken 9 24.08.2009 13:52
JOIN und LEFT JOIN verbinden? Dynamite53 Datenbanken 8 15.05.2009 15:16
Persistence Framework #Avedo Software-Design 37 28.03.2009 17:32
[Erledigt] mit einer CHECKBOX feld nach mehreren wörtern durchsuchen taurus Datenbanken 20 01.12.2008 10:49
Select / Left Join Performance mark007q Datenbanken 4 17.11.2008 15:14
[Erledigt] Left join und inner join stefanjann Datenbanken 7 16.10.2008 15:45
Mehrfach Join lazydog Datenbanken 2 08.05.2008 16:09
JOIN Problem pPanther Datenbanken 7 06.03.2008 17:26
[gelöst]LEFT JOIN, DINSTINCT und trotzdem doppelte?!?! stefanjann Datenbanken 10 06.02.2008 11:49
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
Join auf 2 verschiedene Felder Tommek Datenbanken 6 25.07.2006 20:39
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
INNER JOIN + Suchkriterien + Abfrage duerov PHP Tipps 2006 4 04.04.2006 12:47
inner join aus db PHP Tipps 2006 8 22.01.2006 01:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql join sum, mysql sum join, sum join, mysql join summe, sql join sum, mysql summe join, join sum, mysql summe aus join, mysql summieren join, php mysql join sum, left join sum, mysql join summe im join, http://www.php.de/datenbanken/60487-erledigt-sum-einem-join.html, mysql select sum, sum and join mysql, mysql join sum group by, mysql inner join group sum, sum and join, mysql join summe pro, mysql select join sum

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum