89371
Goto Top

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?

Content-Key: 235592

Url: https://administrator.de/contentid/235592

Printed on: April 20, 2024 at 01:04 o'clock

Member: StefanLausL
StefanLausL Apr 15, 2014 at 12:14:21 (UTC)
Goto Top
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
Member: StefanLausL
StefanLausL Apr 15, 2014 updated at 12:22:33 (UTC)
Goto Top
Für Dich ist natürlich nur der untere Teil interessant.
Du müsstest in Deiner Abfrage die 3 Kundennummern aufnehmen und danach gruppieren
Danach Selektion mit CASE (MSSQL)

Gruß

Stefan