sql = "SELECT a.* FROM 库存表log a LEFT JOIN (SELECT 客户名称, 规格,SUM(CASE WHEN (出厂='0') THEN 数量 ELSE - 数量 END) AS cou From 库存表log  GROUP BY 客户名称, 规格) b ON a.客户名称 = b.客户名称 AND a.规格 = b.规格 WHERE b.cou <> 0 "

解决方案 »

  1.   

    SELECT a.* 
    FROM 库存表log a 
    LEFT JOIN 
    (
       SELECT 客户名称, 规格,SUM(CASE WHEN (出厂='0') THEN 数量 ELSE - 数量 END) AS cou     
       From 库存表log 
       GROUP BY 客户名称, 规格
    ) b 
    ON a.客户名称 = b.客户名称 AND a.规格 = b.规格 
    WHERE b.cou <> 0 
    不知道什么意思
      

  2.   


    SELECT a.* 
    FROM 库存表log a  --别名
       LEFT JOIN      --左连接
         (SELECT 客户名称, 规格,SUM(CASE WHEN (出厂='0')   --case when 用法  出厂字段为 '0'时数量不变,不然为负值
                                         THEN 数量 
                                         ELSE - 数量 END) AS cou 
          From 库存表log GROUP BY 客户名称, 规格) b        --子查询作为一个表
       ON a.客户名称 = b.客户名称 AND a.规格 = b.规格      --左连接条件
    WHERE b.cou <> 0   --查询条件   不等于 0
      

  3.   

    库存表log左连接一个临时表
    (SELECT 客户名称, 规格,SUM(CASE WHEN (出厂='0') THEN 数量 ELSE - 数量 END) AS cou 
       From 库存表log GROUP BY 客户名称, 规格) b
    --一张表