代码之家  ›  专栏  ›  技术社区  ›  Ishu

帮助编写复杂的联接查询

  •  0
  • Ishu  · 技术社区  · 15 年前

    orders (
    id  int unsigned not null,
    fcr_date  TIMESTAMP,
    completion_date TIMESTAMP,
    factory_no  varchar(255),
    vendor_no  varchar(255))
    

    请忽略数据类型输入错误(如果有)。

    我想编写一个sql查询,帮助我获取每个供应商工厂的数据。要获取的数据包括每个供应商工厂的订单数(供应商编号、工厂编号的唯一组)、供应商编号、工厂编号以及fcr日期大于完成日期的订单数。

    我是sql新手,这个查询对我来说相当复杂。如果有人能指导我如何写这个查询,我将不胜感激。

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Adriaan Stander    15 年前

    你可以试试这样的

    SELECT  vendor_no,
            factory_no,
            COUNT(1),
            SUM(CASE WHEN fcr_date > completion_date THEN 1 ELSE 0 END)
    FROM    @orders
    GROUP BY vendor_no,
            factory_no
    
        2
  •  1
  •   djc    15 年前
    SELECT   vendor_no,
             factory_no,
             COUNT(id),
             SUM(IF(fcr_date > completion_date, 1, 0))
    FROM     orders
    GROUP BY vendor_no, factory_no;
    

    MySQL对我有用。

        3
  •  0
  •   ManiP    13 年前