sql >> Database >  >> RDS >> Mysql

MySQL - Hoe beperk je één resultaat per 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 
;

Volgens het antwoord op uw vorige vraag, als meerdere werknemers gebonden zijn voor hetzelfde totale verkoopbedrag in dezelfde winkel, zouden al dergelijke werknemers worden geretourneerd.



  1. Hoe JSON-array zoeken in MySQL?

  2. Er is een netwerkgerelateerde of instantiespecifieke fout opgetreden bij het tot stand brengen van een verbinding met SQL Server

  3. PHP PDO hoe een multiple query request uit te voeren?

  4. MySQL - automatisch verlagende waarde