sql分组功能

时间:2011-05-14 20:58:58

标签: sql ibm-midrange

我正在使用与as400的odbc连接,我知道连接字符串是正确的,因为我的所有其他查询都没有任何问题。

为什么这个sql语句有效:

select
  rdqty,
  alib.rcvshpdt.mbsnodesc,
  rdauthor,
  rdtitle,
  rdediton,
  ifnull(iecactno,actvty) as actlvl,
  class,
  ifnull(ieclp,lp) as cst
from
  alib.rcvshpdt
  left outer join
  alib.bkmaster on alib.rcvshpdt.mbsnodesc=alib.bkmaster.mbsno
  left outer join
  alib.iecostda on alib.rcvshpdt.rcvno=alib.iecostda.rcvno
  and alib.rcvshpdt.mbsnodesc = alib.iecostda.mbsnodesc
where
  alib.rcvshpdt.rcvno='3930697'
order by
  actlvl asc

但是一旦我尝试总结一个数量并将结果分组如下,它就会失败。

select
  sum(rdqty) as quanity,
  alib.rcvshpdt.mbsnodesc,
  rdauthor,
  rdtitle,
  rdediton,
  ifnull(iecactno,actvty) as actlvl,
  class,
  ifnull(ieclp,lp) as cst
from
  alib.rcvshpdt
  left outer join
  alib.bkmaster on alib.rcvshpdt.mbsnodesc=alib.bkmaster.mbsno
  left outer join
  alib.iecostda on alib.rcvshpdt.rcvno=alib.iecostda.rcvno
  and alib.rcvshpdt.mbsnodesc = alib.iecostda.mbsnodesc
where
  alib.rcvshpdt.rcvno='3930697'
group by
  alib.rcvshpdt.mbsnodesc, rdauthor, rdtitle, rdediton, actlvl, class, cst
order by
  actlvl asc

1 个答案:

答案 0 :(得分:3)

据我所知,您不能按别名分组。尝试更改Group子句以直接使用计算,如下所示:

alib.rcvshpdt.mbsnodesc,rdauthor,rdtitle,rdediton,ifnull(iecactno,actvty),class,ifnull(ieclp,lp)