Jürgen: Sql Abfrage

hallo,
ich will eine sql abfrage und weiss nicht wie?
Ich habe die tabelle VERKAUFT mit folgenden feldern ID, ID_HERSTELLER, PREIS,DATUM und die tabelle HERSTELLER mit den FELDERN ID, NAME,

Nun will ich wissen welche Summe von einem bestimmten Hersteller in einem zeitrahmen Z.b Monat verkauft wurde.
Wichtig: Die Darstellung sollte aber sortiert nach der SUMME sein.

Bisher habe ich zuerst alle ID_HERSTELLER aus der Tabelle Hersteller ausgelesen und danach mir die Summe der Verkäufe anzeigen lassen. Doch dann ist es natürlich immer nach ID_HERSTELLER sortiert.

Wie kann ich die beiden abfragen verknüpfen?
(MYSQL datenbank,php)
Danke Jürgen

  1. yo,

    SELECT h.id, h.name, SUM(v.preis) Summe
    FROM hersteller h
    INNER JOIN verkauft v ON v.id_hersteller = h.id
    WHERE v.datum BETWEEN '01.06.2008' AND '01.07.2008'
    GROUP BY h.id, h.name
    ORDER BY 2, 1
    ;

    Ilja

    1. tausend dank,
      mir war klar das es was mit inner join zu tun hat habe das aber noch nie gemacht, muss ich mir mal draufschaffen.
      Danke danke
      Jürgen

  2. Hallo

    ich will eine sql abfrage und weiss nicht wie?
    Ich habe die tabelle VERKAUFT mit folgenden feldern ID, ID_HERSTELLER, PREIS,DATUM und die tabelle HERSTELLER mit den FELDERN ID, NAME,
    Nun will ich wissen welche Summe von einem bestimmten Hersteller in einem zeitrahmen Z.b Monat verkauft wurde.

    Du hättest also gerne etwas dieser Art:

    Gib mir
        die Summe der Preise
        und den Namen des Herstellers
    aus der Tabelle
        Hersteller
    die mit der Tabelle
        Verkauft
    über die Spalten id aus hersteller und id_hersteller aus verkauft verknüpft ist
    wobei nur ein bestimmter Zeitraum zwischen einem Anfangs und einem Enddatum berücksichtigt werden darf
    je Hersteller soll es einen Eintrag geben

    Wichtig: Die Darstellung sollte aber sortiert nach der SUMME sein.

    sortiert nach der Summe.

    Kein Problem :-)

      
    SELECT                   -- Gib mir  
        SUM(v.PREIS) summe,  -- die Summe der Preise  
        h.NAME hersteller    -- und den Namen des Herstellers  
    FROM                     -- aus der Tabelle  
        HERSTELLER h         -- HERSTELLER (mit dem Aliasnamen h angesprochen)  
    INNER JOIN               -- verknüpft mit der Tabelle  
        VERKAUFT v           -- VERKAUFT (mit dem Aliasnamen v)  
    ON                       -- über die Spalten  
        h.ID = v.ID_HERSTELLER  -- ID aus Hersteller und ID_HERSTELLER aus VERKAUFT  
    WHERE                    -- wobei nur ein bestimmter Zeitraum  
        DATUM BETWEEN <anfang> AND <enddatum>  -- berücksichtigt werden soll  
    GROUP BY                 -- gruppiert nach  
        h.NAME               -- dem Namen des Herstellers  
    ORDER BY                 -- sortiert nach  
        SUM(v.PREIS)         -- der Summe  
    
    

    Ein einfacher INNER JOIN mit einer einfachen Gruppierung, einer einfachen WHERE- und einer einfachen ORDER-BY-Klausel.

    Freundliche Grüße

    Vinzenz