2011-05-14 76 views
1

我正在使用一个odbc连接到as400,我知道连接字符串是正确的,并且与所有其他查询一起工作时没有任何问题。sql分组函数

那为什么这条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 
+0

什么错误你收到了吗? – cmutt78 2011-05-14 21:07:45

+0

不能sqlprepare – cmptrwhz 2011-05-14 21:36:12

回答

3

据我所知,你不能用别名进行分组。尝试改变集团条款直接使用的计算如下所示:

alib.rcvshpdt.mbsnodesc,rdauthor,rdtitle,rdediton,IFNULL(iecactno,actvty)类,IFNULL(ieclp,LP)

+0

非常感谢你我从来没有想过这样做,但它的工作完美。 – cmptrwhz 2011-05-14 21:23:47