你的第二中方法中如果有一条记录BECYNO和订单量
都相同的话,将只选一条所以第一种是正确的

解决方案 »

  1.   

    比如这一组数据1001,1000
    1001,1000
    1001,1001002,2000
    1003,3000第一种得
    1001,2100
    1002,2000
    1003,3000第二种得
    1001,1000
    1001,100
    1002,2000
    1003,3000在SUM后结果肯定不一样了
      

  2.   

    我的意思是把ips262a里的订单量汇总
    第一种方法取到的不符合要求(我用计算器加过),所以改用第二个方法的
    因为第一种方法是别人写的,领导说数对不上,但是我觉得这俩应该是一样的结果啊
      

  3.   

    楼上朋友,我理解你的意思,但是我这样:SELECT OIPRLT.BECYNO, ips262a.订单量 AS 热处理负载
    into #hot
    FROM ips262a INNER JOIN
          OIPRLT ON ips262a.AJCONK =OIPRLT.BECONK
    WHERE (OIPRLT.BESTAT = 20)AND (ips262a.AJPRLV = 31)
    GROUP BY OIPRLT.BECYNO,ips262a.订单量select * from #hot
    where becyno='30932'drop table #hot
    得到的记录为:
    30932  120.748
    30932  121.067我用第二种方法得到的是
    30932  241.815但是第一种方法得到的却是
    30932  4110.855这到底怎么回事呢?也就是第二种结果对,但第一钟方法的数据怎么来的呢?
      

  4.   

    改成这样看是否正确SELECT OIPRLT.BECYNO, SUM(ips262a.订单量) AS 热处理负载
    into #hot
    FROM ips262a ,OIPRLT 
    WHERE (OIPRLT.BESTAT = 20)AND (ips262a.AJPRLV = 31) 
    AND ips262a.AJCONK =OIPRLT.BECONK
    GROUP BY OIPRLT.BECYNO
      

  5.   

    OIPRLT表是在DB2上导进SQL SERVER的 ,ips262a表是存储过程生成的
      

  6.   

    to:yoki(小马哥) 
    你写的我运行了,跟第一种是一样的结果
    30932  4110.855我对SQL不是熟悉,这些是别人做的,人家走了又开始我做了。
      

  7.   

    先把数据全先显示出来.照下面的方式再检查每条数据再.再做相应的汇总.SELECT OIPRLT.BECYNO, ips262a.订单量 AS 热处理负载
    FROM ips262a ,OIPRLT 
    WHERE (OIPRLT.BESTAT = 20)AND (ips262a.AJPRLV = 31) 
    AND ips262a.AJCONK =OIPRLT.BECONK或者
    SELECT OIPRLT.BECYNO, ips262a.订单量 AS 热处理负载FROM ips262a INNER JOIN
          OIPRLT ON ips262a.AJCONK =OIPRLT.BECONK
    WHERE (OIPRLT.BESTAT = 20)AND (ips262a.AJPRLV = 31)