先看客户端里的SQL代码SELECT
DPTNO = B.DPTNO,
DPTNAME = B.DPTNAME,
BEGCS = sum(A.BEGCS),
DOC012CS = sum(A.DOC012CS),
DOC04CS = sum(A.DOC04CS),
DOCINCS = sum(A.DOCINCS),
DOC03NET = SUM(A.DOC03NET),
DOC03CS = sum(A.DOC03CS),
DOC21NET = SUM(A.DOC21NET),
DOC21CS = sum(A.DOC21CS),
DOC231CS = sum(A.DOC231CS),
DOC232CS = sum(A.DOC232CS),
DOC29CS = sum(A.DOC29CS),
DOCOUTCS = sum(A.DOCOUTCS),
ENDCS = sum(A.ENDCS),
MGNAMT = SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS),
MGNRAT =CASE WHEN (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS)
- SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS))=0 OR SUM(DOC21NET)=0 THEN 0
ELSE (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS)
- SUM(DOC29CS))/SUM(DOC21NET)*100 END,
ZZL =CASE WHEN SUM(DOC21NET)=0 OR SUM(ENDCS)=0 THEN 0 else SUM(DOC21NET)/SUM(ENDCS) * 100 END ,bdat=:BDAT,edat=:EDAT
FROM
(
SELECT
DPTID = DBO.FINDPARENTDPT(DPTID,:NUM),
BEGCS = A.BEGCS,
DOC012CS = A.DOC012CS,
DOC04CS = A.DOC04CS,
DOCINCS = A.DOCINCS,
DOC03NET = A.DOC03NET,
DOC03CS = A.DOC03CS,
DOC21NET = A.DOC21NET,
DOC21CS = A.DOC21CS,
DOC231CS = A.DOC231CS,
DOC232CS = A.DOC232CS,
DOC29CS = A.DOC29CS,
DOCOUTCS = A.DOCOUTCS,
ENDCS = A.ENDCS
FROM DBO.GETSYL(:BDAT,:EDAT) A,BASPLUMAIN B,BASPLUPRC C
WHERE A.PLUID=B.PLUID AND B.PLUID=C.PLUID AND [ISRAT]
) A,BASDEPT B
WHERE A.DPTID=B.ID AND [DPTNO]
GROUP BY DPTNO,DPTNAME
ORDER BY DPTNO
下面是可以在查询分析器里出结果的SQLSELECT
DPTNO = B.DPTNO,
DPTNAME = B.DPTNAME,
BEGCS = sum(A.BEGCS),
DOC012CS = sum(A.DOC012CS),
DOC04CS = sum(A.DOC04CS),
DOCINCS = sum(A.DOCINCS),
DOC03NET = SUM(A.DOC03NET),
DOC03CS = sum(A.DOC03CS),
DOC21NET = SUM(A.DOC21NET),
DOC21CS = sum(A.DOC21CS),
DOC231CS = sum(A.DOC231CS),
DOC232CS = sum(A.DOC232CS),
DOC29CS = sum(A.DOC29CS),
DOCOUTCS = sum(A.DOCOUTCS),
ENDCS = sum(A.ENDCS),
MGNAMT = SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS),
MGNRAT =CASE WHEN (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS)
- SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS))=0 OR SUM(DOC21NET)=0 THEN 0
ELSE (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS)
- SUM(DOC29CS))/SUM(DOC21NET)*100 END,
ZZL =CASE WHEN SUM(DOC21NET)=0 OR SUM(ENDCS)=0 THEN 0 else SUM(DOC21NET)/SUM(ENDCS) * 100 END ,bdat='2012-01-01',edat='2012-01-31'
FROM
(
SELECT
DPTID = DBO.FINDPARENTDPT(DPTID,1),
BEGCS = A.BEGCS,
DOC012CS = A.DOC012CS,
DOC04CS = A.DOC04CS,
DOCINCS = A.DOCINCS,
DOC03NET = A.DOC03NET,
DOC03CS = A.DOC03CS,
DOC21NET = A.DOC21NET,
DOC21CS = A.DOC21CS,
DOC231CS = A.DOC231CS,
DOC232CS = A.DOC232CS,
DOC29CS = A.DOC29CS,
DOCOUTCS = A.DOCOUTCS,
ENDCS = A.ENDCS
FROM DBO.GETSYL('2012-01-01','2012-01-31') A,BASPLUMAIN B,BASPLUPRC C
WHERE A.PLUID=B.PLUID AND B.PLUID=C.PLUID AND ADDTX=17
) A,BASDEPT B
WHERE A.DPTID=B.ID AND 1 = 1
GROUP BY DPTNO,DPTNAME
ORDER BY DPTNO
我也不知道为啥会这样, 难道是环境配置有问题?如果是环境问题,那么,应当从哪几个方面入手?
DPTNO = B.DPTNO,
DPTNAME = B.DPTNAME,
BEGCS = sum(A.BEGCS),
DOC012CS = sum(A.DOC012CS),
DOC04CS = sum(A.DOC04CS),
DOCINCS = sum(A.DOCINCS),
DOC03NET = SUM(A.DOC03NET),
DOC03CS = sum(A.DOC03CS),
DOC21NET = SUM(A.DOC21NET),
DOC21CS = sum(A.DOC21CS),
DOC231CS = sum(A.DOC231CS),
DOC232CS = sum(A.DOC232CS),
DOC29CS = sum(A.DOC29CS),
DOCOUTCS = sum(A.DOCOUTCS),
ENDCS = sum(A.ENDCS),
MGNAMT = SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS),
MGNRAT =CASE WHEN (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS)
- SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS))=0 OR SUM(DOC21NET)=0 THEN 0
ELSE (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS)
- SUM(DOC29CS))/SUM(DOC21NET)*100 END,
ZZL =CASE WHEN SUM(DOC21NET)=0 OR SUM(ENDCS)=0 THEN 0 else SUM(DOC21NET)/SUM(ENDCS) * 100 END ,bdat=:BDAT,edat=:EDAT
FROM
(
SELECT
DPTID = DBO.FINDPARENTDPT(DPTID,:NUM),
BEGCS = A.BEGCS,
DOC012CS = A.DOC012CS,
DOC04CS = A.DOC04CS,
DOCINCS = A.DOCINCS,
DOC03NET = A.DOC03NET,
DOC03CS = A.DOC03CS,
DOC21NET = A.DOC21NET,
DOC21CS = A.DOC21CS,
DOC231CS = A.DOC231CS,
DOC232CS = A.DOC232CS,
DOC29CS = A.DOC29CS,
DOCOUTCS = A.DOCOUTCS,
ENDCS = A.ENDCS
FROM DBO.GETSYL(:BDAT,:EDAT) A,BASPLUMAIN B,BASPLUPRC C
WHERE A.PLUID=B.PLUID AND B.PLUID=C.PLUID AND [ISRAT]
) A,BASDEPT B
WHERE A.DPTID=B.ID AND [DPTNO]
GROUP BY DPTNO,DPTNAME
ORDER BY DPTNO
下面是可以在查询分析器里出结果的SQLSELECT
DPTNO = B.DPTNO,
DPTNAME = B.DPTNAME,
BEGCS = sum(A.BEGCS),
DOC012CS = sum(A.DOC012CS),
DOC04CS = sum(A.DOC04CS),
DOCINCS = sum(A.DOCINCS),
DOC03NET = SUM(A.DOC03NET),
DOC03CS = sum(A.DOC03CS),
DOC21NET = SUM(A.DOC21NET),
DOC21CS = sum(A.DOC21CS),
DOC231CS = sum(A.DOC231CS),
DOC232CS = sum(A.DOC232CS),
DOC29CS = sum(A.DOC29CS),
DOCOUTCS = sum(A.DOCOUTCS),
ENDCS = sum(A.ENDCS),
MGNAMT = SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS),
MGNRAT =CASE WHEN (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS)
- SUM(DOC232CS)-SUM(DOC03CS) - SUM(DOC29CS))=0 OR SUM(DOC21NET)=0 THEN 0
ELSE (SUM(DOC21NET)+SUM(DOC03NET) - SUM(DOC21CS) - SUM(DOC231CS) - SUM(DOC232CS)-SUM(DOC03CS)
- SUM(DOC29CS))/SUM(DOC21NET)*100 END,
ZZL =CASE WHEN SUM(DOC21NET)=0 OR SUM(ENDCS)=0 THEN 0 else SUM(DOC21NET)/SUM(ENDCS) * 100 END ,bdat='2012-01-01',edat='2012-01-31'
FROM
(
SELECT
DPTID = DBO.FINDPARENTDPT(DPTID,1),
BEGCS = A.BEGCS,
DOC012CS = A.DOC012CS,
DOC04CS = A.DOC04CS,
DOCINCS = A.DOCINCS,
DOC03NET = A.DOC03NET,
DOC03CS = A.DOC03CS,
DOC21NET = A.DOC21NET,
DOC21CS = A.DOC21CS,
DOC231CS = A.DOC231CS,
DOC232CS = A.DOC232CS,
DOC29CS = A.DOC29CS,
DOCOUTCS = A.DOCOUTCS,
ENDCS = A.ENDCS
FROM DBO.GETSYL('2012-01-01','2012-01-31') A,BASPLUMAIN B,BASPLUPRC C
WHERE A.PLUID=B.PLUID AND B.PLUID=C.PLUID AND ADDTX=17
) A,BASDEPT B
WHERE A.DPTID=B.ID AND 1 = 1
GROUP BY DPTNO,DPTNAME
ORDER BY DPTNO
我也不知道为啥会这样, 难道是环境配置有问题?如果是环境问题,那么,应当从哪几个方面入手?
2.确保客户端能连接你服务器的SQL SERVER.
FROM DBO.GETSYL(:BDAT,:EDAT) A,BASPLUMAIN B,BASPLUPRC C
WHERE A.PLUID=B.PLUID AND B.PLUID=C.PLUID AND [ISRAT]
) A,BASDEPT B
WHERE A.DPTID=B.ID AND [DPTNO]
GROUP BY DPTNO,DPTNAME
ORDER BY DPTNO
这段代码中的[ISRAT] 和 [DPTNO] 是什么东西?
在MS-SQL SERVER 条件是colname >4这种,你这个是直接放到这,看不懂。
那客户端传进去的值 和 查询分析器里使用的参数值都一样吗?
客户端就是不出数据
并且报错
fastDataSet1_ADO: cannot perform this operation on a cloased dataset.
汗....问题是,以前是好的,在服务器重做之后就出现这样的问题.
哎.....