你加中括号干什么用的? Select clbm,qmsdt,qmswkcl,qmkcl,qmkce,0 As DptCnt,0 As DptAmount From clpcb as a ,cldmb as b where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj) not in (select convert(char(20),clbm)+'_'+convert(char(20),dj) from (select clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0 )
上面的语句是节选出来的下面这是整个的语句:Select cllb,clbm,clmc,ggxh,jldw,qmsdt,qmswkcl,qmkcl,qmkce,DptCnt,DptAmount,(Case qmkcl When 0 Then 0 Else Round(qmkce/qmkcl,2) End) As dj From (Select Max(B.cllb) As cllb,B.clbm As clbm,Max(B.clmc) As clmc,max(B.ggxh) As ggxh,Max(B.jldw) As jldw,Sum(A.qmsdt) As qmsdt,Sum(A.qmswkcl) As qmswkcl,Sum(A.qmkcl) As qmkcl,Sum(A.qmkce) As qmkce,Sum(A.DptCnt) As DptCnt,Sum(A.DptAmount) As DptAmount From (Select clbm,qmsdt,qmswkcl,qmkcl,qmkce,0 As DptCnt,0 As DptAmount From [clpcb as a ,cldmb as b where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj) not in(select convert(char(20),clbm)+'_'+convert(char(20),dj) from (select clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0)] UNION ALL Select clbm,0 ,0 ,0 ,0 ,sl ,je From [FixedAssset]) As A,[clpcb as a ,cldmb as b where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj) not in(select convert(char(20),clbm)+'_'+convert(char(20),dj) from (s elect clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0)] B Where A.clbm=B.clbm Group By B.clbm) As TabTmp Where 1=1 And b.cllb='家具'
帮你整理格式,点编译的确报你的错,问题就是from 那里不能用[],你改成小括号试试,不过不可能突然就不行的,一定是有人有意无意改过SELECT cllb , clbm , clmc , ggxh , jldw , qmsdt , qmswkcl , qmkcl , qmkce , DptCnt , DptAmount , ( CASE qmkcl WHEN 0 THEN 0 ELSE ROUND(qmkce / qmkcl, 2) END ) AS dj FROM ( SELECT MAX(B.cllb) AS cllb , B.clbm AS clbm , MAX(B.clmc) AS clmc , MAX(B.ggxh) AS ggxh , MAX(B.jldw) AS jldw , SUM(A.qmsdt) AS qmsdt , SUM(A.qmswkcl) AS qmswkcl , SUM(A.qmkcl) AS qmkcl , SUM(A.qmkce) AS qmkce , SUM(A.DptCnt) AS DptCnt , SUM(A.DptAmount) AS DptAmount FROM ( SELECT clbm , qmsdt , qmswkcl , qmkcl , qmkce , 0 AS DptCnt , 0 AS DptAmount FROM [clpcb as a ,cldmb as b where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj) not in(select convert(char(20),clbm)+'_'+convert(char(20),dj) from (select clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0)] UNION ALL SELECT clbm , 0 , 0 , 0 , 0 , sl , je FROM [FixedAssset] ) AS A , [clpcb as a ,cldmb as b where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj) not in(select convert(char(20),clbm)+'_'+convert(char(20),dj) from (s elect clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0)] B WHERE A.clbm = B.clbm GROUP BY B.clbm ) AS TabTmp WHERE 1 = 1 AND b.cllb = '家具'
Select clbm,qmsdt,qmswkcl,qmkcl,qmkce,0 As DptCnt,0 As DptAmount
From clpcb as a ,cldmb as b
where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj)
not in (select convert(char(20),clbm)+'_'+convert(char(20),dj)
from (select clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp
where qmswkcl=0
)
elect clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0)] B Where A.clbm=B.clbm Group By B.clbm) As TabTmp Where 1=1 And b.cllb='家具'
clbm ,
clmc ,
ggxh ,
jldw ,
qmsdt ,
qmswkcl ,
qmkcl ,
qmkce ,
DptCnt ,
DptAmount ,
( CASE qmkcl
WHEN 0 THEN 0
ELSE ROUND(qmkce / qmkcl, 2)
END ) AS dj
FROM ( SELECT MAX(B.cllb) AS cllb ,
B.clbm AS clbm ,
MAX(B.clmc) AS clmc ,
MAX(B.ggxh) AS ggxh ,
MAX(B.jldw) AS jldw ,
SUM(A.qmsdt) AS qmsdt ,
SUM(A.qmswkcl) AS qmswkcl ,
SUM(A.qmkcl) AS qmkcl ,
SUM(A.qmkce) AS qmkce ,
SUM(A.DptCnt) AS DptCnt ,
SUM(A.DptAmount) AS DptAmount
FROM ( SELECT clbm ,
qmsdt ,
qmswkcl ,
qmkcl ,
qmkce ,
0 AS DptCnt ,
0 AS DptAmount
FROM [clpcb as a ,cldmb as b where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj) not in(select convert(char(20),clbm)+'_'+convert(char(20),dj) from (select clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0)]
UNION ALL
SELECT clbm ,
0 ,
0 ,
0 ,
0 ,
sl ,
je
FROM [FixedAssset]
) AS A ,
[clpcb as a ,cldmb as b where 1=1 and a.clbm=b.clbm And convert(char(20),a.clbm)+'_'+convert(char(20),a.dj) not in(select convert(char(20),clbm)+'_'+convert(char(20),dj) from (s
elect clbm,dj,sum(qmswkcl) as qmswkcl from clpcb group by clbm,dj) as tmp where qmswkcl=0)] B
WHERE A.clbm = B.clbm
GROUP BY B.clbm
) AS TabTmp
WHERE 1 = 1
AND b.cllb = '家具'