SELECT
a.FSkuNumber FSkuNumber,
SUM(a.fqty) fqty,
e.finvqty finvqty,e.finvqty-SUM(a.fqty) fnowlowqty,
MAX(e.finvqty-SUM(a.fqty)) maxqty,
e.Fcansellqty Fcansellqtyfrom sell_systradeitem a 
LEFT JOIN sell_systrade b on a.fid=b.FID
LEFT JOIN pub_trade_taobaoitem c on a.foid=c.Foid
LEFT JOIN qtyinfo e on a.FSkuID=e.Fskuid and a.FStockID=e.Fstockid我现在要求最大值请问应该如何写

解决方案 »

  1.   

    把没有聚合的列全部放到后面的group by中
      

  2.   

    MAX(e.finvqty-SUM(a.fqty)) maxqty,
    e.finvqty ,这列是一个非聚合列,他要与一个 SUM 函数做运算是不行的。
      

  3.   

    SELECT
    a.FSkuNumber FSkuNumber,
    a.fqty fqty,
    e.finvqty finvqty,e.finvqty-a.fqty fnowlowqty,
    MAX(e.finvqty-a.fqty) maxqty,
    e.Fcansellqty Fcansellqtyfrom 
    SELECT(
    s.FSkuNumber,
    s.fid,
    s.foid,
    s.fskuid,
    s.fstockid,
    SUM(s.fqty) AS fqty
    FROM
    sell_systradeitem s
    GROUP BY 
    s.FSkuNumber,
    s.fid,
    s.foid,
    s.fskuid,
    s.fstockid
    ) a
    LEFT JOIN sell_systrade b on a.fid=b.FID
    LEFT JOIN pub_trade_taobaoitem c on a.foid=c.Foid
    LEFT JOIN qtyinfo e on a.FSkuID=e.Fskuid and a.FStockID=e.Fstockid