
89371
15.04.2014
Bekommt man das in eine einzige MySQL Abfrage?
Kann man die Ergebnisse von mehreren MySQL Abfragen in einer Tabelle kombinieren, indem nur eine MySQL Abfrage erzeugt wird?
Ich habe eine MySQL Abfrage mit einem Filter (WHERE), die ich jedoch mit 3 verschiedenen Filtern abfragen und nebeneinander in einer Tabelle darstellen möchte.
SELECT
YEAR(spielzeit) AS Jahr,
MONTH(spielzeit) AS Monat,
SUM(gewinn) AS Summe
FROM my_archiv
WHERE kundennummer = '50'
GROUP BY YEAR(spielzeit), MONTH(spielzeit)
ORDER BY YEAR(spielzeit) DESC, MONTH(spielzeit) DESC
Das ergibt in den ersten zwei Spalten das Jahr und den Monat, in der dritten Spalte die Summe seines Gewinn in diesem Monat.
Das Ganze möchte ich mit meinen 3 Kunden kombinieren, sodass in der vierten Spalte der zweite Kunde und in der fünften Spalte der dritte Kunde mit seinem jeweiligen Monatsumsätzen zu sehen wäre. Bekommt man sowas in eine einzelne MySQL Abfrage hin?
Ich habe eine MySQL Abfrage mit einem Filter (WHERE), die ich jedoch mit 3 verschiedenen Filtern abfragen und nebeneinander in einer Tabelle darstellen möchte.
SELECT
YEAR(spielzeit) AS Jahr,
MONTH(spielzeit) AS Monat,
SUM(gewinn) AS Summe
FROM my_archiv
WHERE kundennummer = '50'
GROUP BY YEAR(spielzeit), MONTH(spielzeit)
ORDER BY YEAR(spielzeit) DESC, MONTH(spielzeit) DESC
Das ergibt in den ersten zwei Spalten das Jahr und den Monat, in der dritten Spalte die Summe seines Gewinn in diesem Monat.
Das Ganze möchte ich mit meinen 3 Kunden kombinieren, sodass in der vierten Spalte der zweite Kunde und in der fünften Spalte der dritte Kunde mit seinem jeweiligen Monatsumsätzen zu sehen wäre. Bekommt man sowas in eine einzelne MySQL Abfrage hin?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 235592
Url: https://administrator.de/forum/bekommt-man-das-in-eine-einzige-mysql-abfrage-235592.html
Ausgedruckt am: 18.04.2025 um 22:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
so in der Art (MSSQL kein MySQL) ?
CREATE TABLE #t(Id INT NOT NULL, Name NVARCHAR(4000) NOT NULL)
INSERT INTO #t
(Id,Name)
SELECT 1, 'Test1'
UNION
SELECT 2, 'Test2'
SELECT
MAX(CASE Id WHEN 1 THEN Id ELSE NULL END) Id1
,MAX(CASE Id WHEN 1 THEN Name ELSE NULL END) Name1
,MAX(CASE Id WHEN 2 THEN Id ELSE NULL END) Id2
,MAX(CASE Id WHEN 2 THEN Name ELSE NULL END) Name2
FROM
#t
so in der Art (MSSQL kein MySQL) ?
CREATE TABLE #t(Id INT NOT NULL, Name NVARCHAR(4000) NOT NULL)
INSERT INTO #t
(Id,Name)
SELECT 1, 'Test1'
UNION
SELECT 2, 'Test2'
SELECT
MAX(CASE Id WHEN 1 THEN Id ELSE NULL END) Id1
,MAX(CASE Id WHEN 1 THEN Name ELSE NULL END) Name1
,MAX(CASE Id WHEN 2 THEN Id ELSE NULL END) Id2
,MAX(CASE Id WHEN 2 THEN Name ELSE NULL END) Name2
FROM
#t