sql >> Database teknologi >  >> RDS >> Mysql

MySQL - Hvordan begrænser man et resultat pr. ID?

CREATE OR REPLACE VIEW employee_sales_totals AS
    SELECT
        e.*,
        SUM(p.total_sale_value)   AS total_sale_value
    FROM
        Employee e
    INNER JOIN
        Payment  p
            ON p.employee_number = e.employee_number 
    GROUP BY
        e.id  -- This should be the Primary Key / Surrogate Key of the employee table
;

CREATE OR REPLACE VIEW shop_top_employee_by_sales_value AS
    SELECT
        s.storename          AS "Store", 
        e.employee_name      AS "Employee", 
        m.employee_name      AS "Manager", 
        p.total_sale_value   AS "Sales Value" 
    FROM
    (
        SELECT storeid, MAX(total_sale_value) AS total_sale_value
          FROM employee_sales_totals
      GROUP BY storeid
    )
       p
    INNER JOIN
        employee_sales_totals   e
            ON  e.storeid          = p.storeid
            AND e.total_sale_value = p.total_sale_value
    INNER JOIN
        fss_Shop   s 
            ON s.storeid = e.storeid 
    INNER JOIN
        Employee   m
            ON m.employee_number = e.manager_number 
;

I henhold til svaret på dit tidligere spørgsmål, hvis flere medarbejdere er bundet til det samme samlede salgsbeløb i den samme butik, vil alle sådanne medarbejdere blive returneret.



  1. PDO/MySQL hukommelsesforbrug med stort resultatsæt

  2. Sådan kopieres SQL Server-databaser fra en instans til en anden

  3. brew services list viser mysql, der kører, men kan ikke oprette forbindelse

  4. Ser frem til PGConf India 2017