lynott1986
Neuer Benutzer
- Beiträge
- 2
Hallo,
kurz etwas zu mir, damit ihr den Hintergrund meiner Anfrage versteht, die wahrscheinlich hier schon mal beantwortet wurde. Ich bin in der Vertriebssteuerung tätig und habe mit Datenbankabfragen wenig zu tun. V.a. beherrsche ich die verschiedenen IT-Fachtermini nicht, so dass ich in den Foren lange - seeehr lange - suche und doch nicht das passende finde. Daher meine Vermutung, dass es dazu eine ganz einfache Lösung gibt, die hier auch schon publiziert ist - ich aber nicht finde. In der Firma hat der Kollege der SQL konnte leider den verdienten Ruhestand angetreten und ich habe mir SQL selbst beigebracht. Klappt ganz gut. Nur nicht mehr in diesem speziellen Fall.
Ich habe eine Datenbank u.a. will ich nun aus 2 Tabellen Daten ziehen und die darstellen. Und zwar immer eine Zeile pro Kunde.
vereinfachtes Beispiel:
Tabelle A = Kunde
Tabelle B = Bestellung
SELECT
a.kunden_id,
a.kunden_name,
a.kunden_plz,
a.kunden_ort,
CASE
WHEN MONTH (b.bestell_datum) IN (1) THEN 1
ELSE 0 END AS JAN,
CASE
WHEN MONTH (b.bestell_datum) in (2) THEN 1
ELSE 0 END AS FEB,
...(für die Monate 3-12)...
FROM
kunden a,
bestellung b
WHERE
a.kunden_id = b.bestell_kunde_id
AND YEAR (b.bestell_datum) in (2018)
Das Ergebnis ist richtig, die Form allerdings falsch. Die Abfrage wirft mir nun für den Kunden 12345 insgesamt 4 Zeilen aus
id Name PLZ ORT JAN FEB MRZ APR MAI
12345 KundeA 96542 Poppelheim 1 0 0 0 0
12345 KundeA 96542 Poppelheim 0 1 0 0 0
12345 KundeA 96542 Poppelheim 0 0 0 1 0
12345 KundeA 96542 Poppelheim 0 0 0 0 1
Also pro 'belieferten' Monat eine. Ich möchte aber 1 Zeile wie folgt:
id Name PLZ ORT JAN FEB MRZ APR MAI
12345 KundeA 96542 Poppelheim 1 1 0 1 1
Was nun sprach Zarathustra? Danke für Eure Hilfe und Euer Verständnis.
Gruß lynott1986
kurz etwas zu mir, damit ihr den Hintergrund meiner Anfrage versteht, die wahrscheinlich hier schon mal beantwortet wurde. Ich bin in der Vertriebssteuerung tätig und habe mit Datenbankabfragen wenig zu tun. V.a. beherrsche ich die verschiedenen IT-Fachtermini nicht, so dass ich in den Foren lange - seeehr lange - suche und doch nicht das passende finde. Daher meine Vermutung, dass es dazu eine ganz einfache Lösung gibt, die hier auch schon publiziert ist - ich aber nicht finde. In der Firma hat der Kollege der SQL konnte leider den verdienten Ruhestand angetreten und ich habe mir SQL selbst beigebracht. Klappt ganz gut. Nur nicht mehr in diesem speziellen Fall.
Ich habe eine Datenbank u.a. will ich nun aus 2 Tabellen Daten ziehen und die darstellen. Und zwar immer eine Zeile pro Kunde.
vereinfachtes Beispiel:
Tabelle A = Kunde
Tabelle B = Bestellung
SELECT
a.kunden_id,
a.kunden_name,
a.kunden_plz,
a.kunden_ort,
CASE
WHEN MONTH (b.bestell_datum) IN (1) THEN 1
ELSE 0 END AS JAN,
CASE
WHEN MONTH (b.bestell_datum) in (2) THEN 1
ELSE 0 END AS FEB,
...(für die Monate 3-12)...
FROM
kunden a,
bestellung b
WHERE
a.kunden_id = b.bestell_kunde_id
AND YEAR (b.bestell_datum) in (2018)
Das Ergebnis ist richtig, die Form allerdings falsch. Die Abfrage wirft mir nun für den Kunden 12345 insgesamt 4 Zeilen aus
id Name PLZ ORT JAN FEB MRZ APR MAI
12345 KundeA 96542 Poppelheim 1 0 0 0 0
12345 KundeA 96542 Poppelheim 0 1 0 0 0
12345 KundeA 96542 Poppelheim 0 0 0 1 0
12345 KundeA 96542 Poppelheim 0 0 0 0 1
Also pro 'belieferten' Monat eine. Ich möchte aber 1 Zeile wie folgt:
id Name PLZ ORT JAN FEB MRZ APR MAI
12345 KundeA 96542 Poppelheim 1 1 0 1 1
Was nun sprach Zarathustra? Danke für Eure Hilfe und Euer Verständnis.
Gruß lynott1986