2011-05-14 36 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