Vinzenz Mai: Matrix aus Tabellen

Beitrag lesen

Hallo Stoni,

Wenn die Tabelle Liferanten ergänzt ist:

Tabelle "Lieferanten"
l_id        Lieferant Ort


1           Otto      Hamburg
2           Conrad    Hirschau

warum geht dann .. nicht?

SELECT

Lieferant,
Ort,

-- weil Du nach jeder Spalte, auf die keine Aggregatsfunktion
-- angewandt wird, gruppieren musst. Das einzige mir bekannte
-- DBMS, das die extrem nervende Angewohnheit hat, soetwas nicht
-- als Syntax-Error durchgehen zu lassen, ist MySQL. Ein ständige
-- Fehlerquelle, die für viele Postings hier im Forum sorgt.

-- Da der Ort für alle Lieferanten gleich sein sollte (wir
-- vernachlässigen hier die Filialen :-)), reicht es Ort der
-- GROUP-BY-Klausel hinzuzufügen

MAX(CASE WHEN Produkt = 'Fernseher' THEN 'X' ELSE 'O' END) AS 'Fernseher',
    MAX(CASE WHEN Produkt = 'Kleid'     THEN 'X' ELSE 'O' END) AS 'Kleid',
    MAX(CASE WHEN Produkt = 'Lötkolben' THEN 'X' ELSE 'O' END) AS 'Lötkolben'
FROM
    (Lieferanten L
INNER JOIN WerLiefertWas W
ON L.l_id = W.l_id)
INNER JOIN Produkte P
ON W.p_id = P.p_id
-- GROUP BY Lieferant

GROUP BY Lieferant, Ort

  
  
Freundliche Grüße  
  
Vinzenz