sql >> Databáze >  >> RDS >> Mysql

MySQL – Jak omezit jeden výsledek na 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 
;

Podle odpovědi na vaši předchozí otázku, pokud je více zaměstnanců vázáno na stejnou celkovou částku prodeje ve stejném obchodě, všichni tito zaměstnanci by byli vráceni.



  1. PostgreSQL:Udělte veškerá oprávnění uživateli v databázi PostgreSQL

  2. Jak mohu provést tři spojení tabulek v dotazu UPDATE?

  3. Kořenový přístup k MySQL ze všech hostitelů

  4. Jak najít hranice skupin souvislých pořadových čísel?