Frank (no reg): SQL - Abfrage (logik problem)

Beitrag lesen

Hi,

Informix sagt mir primär nix, ausser dass es quasi von IBM stammt.

Ich hoffe, es unterstützt SQL nach ANSI 92 Standard und damit explizite JOIN syntax. Mit letzterer wird dein SQL auch viel deutlicher lesbar.

  
SELECT  
        pe1.wert,  
        pe2.wert,  
        sum(auftragposition.menge) AS Menge  
   FROM produkt  
   INNER JOIN produkteigenschaft pe1  
      ON produkt.id = pe1.produkt_id  
      -- und jetzt nur die Produkteingeschaften LÄNGE  
      AND pe1.Name = 'länge'  
   INNER JOIN produkteigenschaft pe2  
      ON produkt.id = pe2.produkt_id  
      -- und jetzt nur die Produkteingeschaften FARBE  
      AND pe2.Name = 'farbe'  
   INNER JOIN auftragposition  
      ON produkt.id = auftragposition.produkt_id  
   INNER JOIN auftrag  
      ON auftragposition.auftrag_id = auftrag.id  
      AND auftrag.lieferdatum BETWEEN "2007-01-01" AND "2007-02-01"  
   GROUP BY pe1.wert,  
            pe2.wert  
   ORDER BY Menge DESC  

Du musst also die Tabelle 'produkteigenschaft' 2x joinen.

Gruss, Frank