SELECT
 COUNT(distinct a.productid),
 SUM(a.number) AS asum,
 a.productid AS aproductid,
 a.warehouseid AS awarehouseid,
 a.number AS anumber,
 b.alarm AS balarm,
 a.price AS aprice,
 b.unit AS bunit
FROM {$tablepre}stocksalesdate AS a,{$tablepre}productbasic AS b 
WHERE a.productid=b.productbasicid and a.type!=2 and b.alarm>=a.asum
GROUP BY a.productid ORDER BY a.datetime desc 
LIMIT ".$offset.",".$psize."

解决方案 »

  1.   

    对sum 后的列再做条件要用 having 吧~
    select COUNT(distinct a.productid),SUM(a.number) AS asum,a.productid AS aproductid,
                            a.warehouseid AS awarehouseid,
                            a.number AS anumber,b.alarm AS balarm,a.price AS aprice,b.unit AS bunit
            from stocksalesdate a, productbasic b
           where a.productid=b.productbasicid and a.type!=2 
           GROUP BY a.productid 
           having sum(a.number)<=sum(b.alarm)/count(b.alarm)
      

  2.   

    哇,太感谢了。
    看来,我对SQL语句,了解的还是不够深啊、!!!!!!!!!给分加分!!!