CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

请帮忙啊,我的存储过程出问题了,出错提示是[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionCheckForData (CheckforData()).

楼主oldfoxtan(小猫熊)2003-08-02 09:40:32 在 MS-SQL Server / 疑难问题 提问

ALTER                   procedure   SaleOderDetailReport   @UpperDate   datetime,   @LowerDate   datetime  
  as  
   
              SELECT   dbo.TAT004.SuiteNm,   dbo.TAT004.SaleDt,   dbo.TAT004.SaleNo,   dbo.TAT004.DeptNo,   dbo.TAF066.DeptNm,   dbo.TAT004.EmpNo,    
                    dbo.TAF074.EmpNm,   dbo.TAT004.CustNo,dbo.TAF071.CustNm,    
  --货结否  
  dbo.TAT004.SaleSum,     --订单金额  
  dbo.TAT004.AMT,   --出库金额  
                       
   
  skje   =   (SELECT   sum(dbo.TAT001.AMT)   --收款金额  
                      FROM   dbo.TAT003   LEFT   OUTER   JOIN  
                      dbo.TAT001   ON   dbo.TAT003.OutStNo   =   dbo.TAT001.PS_NO   AND    
                      dbo.TAT003.SuiteNm   =   dbo.TAT001.SuiteNm   where   isnull(dbo.TAT003.MoneyVerifyNo,   '')   <>   ''  
                      and   dbo.TAT003.saleNo   =   dbo.TAT004.saleNo),  
   
  qkje   =   isnull(dbo.TAT004.amt,   0)   -   isnull((SELECT   sum(dbo.TAT001.AMT)   --欠款金额  
                      FROM   dbo.TAT003   LEFT   OUTER   JOIN  
                      dbo.TAT001   ON   dbo.TAT003.OutStNo   =   dbo.TAT001.PS_NO   AND    
                      dbo.TAT003.SuiteNm   =   dbo.TAT001.SuiteNm   where   isnull(dbo.TAT003.MoneyVerifyNo,   '')   <>   ''  
                      and   dbo.TAT003.saleNo   =   dbo.TAT004.saleNo     ),   0),  
   
  hjf   =   case   when   isnull((select   sum(isnull(tat005.Num,   0))   from   tat005   where   tat005.saleNo   =   tat004.saleNo),   0)  
              -   isnull((SELECT   sum(dbo.TAT001.num)  
                      FROM   dbo.TAT003   LEFT   OUTER   JOIN  
                      dbo.TAT001   ON   dbo.TAT003.OutStNo   =   dbo.TAT001.PS_NO   AND    
                      dbo.TAT003.SuiteNm   =   dbo.TAT001.SuiteNm   where   isnull(dbo.TAT003.MoneyVerifyNo,   '')   <>   ''  
                      and   dbo.TAT003.saleNo   =   dbo.TAT004.saleNo     ),   0)   =   0   then   'Y'   else   'N'   end,  
   
  --款结否  
  kjf   =   case   when   dbo.TAT004.amt   -   (SELECT   sum(dbo.TAT001.AMT)  
                      FROM   dbo.TAT003   LEFT   OUTER   JOIN  
                      dbo.TAT001   ON   dbo.TAT003.OutStNo   =   dbo.TAT001.PS_NO   AND    
                      dbo.TAT003.SuiteNm   =   dbo.TAT001.SuiteNm   where   isnull(dbo.TAT003.MoneyVerifyNo,   '')   <>   ''  
                      and   dbo.TAT003.saleNo   =   dbo.TAT004.saleNo     )   =   0   then   'Y'   else   'N'   end   ,  
  --票结否  
  pjf   =     case   when   isnull((select   count(*)   from   dbo.TAT003   where   isnull(dbo.TAT003.InvVerifyNo,   '')   =   ''  
                              and   dbo.TAT003.SuiteNm   =   dbo.TAT004.SuiteNm     and   dbo.TAT003.SaleNo   =   dbo.TAT004.SaleNo),   0)   =   0   then   'Y'   else   'N'   end    
   
              FROM   dbo.TAT004   LEFT   OUTER   JOIN  
                    dbo.TAF071   ON   dbo.TAT004.SuiteNm   =   dbo.TAF071.SuiteNm   AND    
                    dbo.TAT004.CustNo   =   dbo.TAF071.CustNo   LEFT   OUTER   JOIN  
                    dbo.TAF074   ON   dbo.TAT004.EmpNo   =   dbo.TAF074.EmpNo   LEFT   OUTER   JOIN  
                    dbo.TAF066   ON   dbo.TAT004.DeptNo   =   dbo.TAF066.DeptNo  
  where   convert(char(8),   dbo.tat004.SaleDt,   112)   between   convert(char(8),   @UpperDate,   112)  
              and   convert(char(8),   @LowerDate,   112)  
   
  问题点数:0、回复次数:10Top

1 楼oldfoxtan(小猫熊)回复于 2003-08-02 09:43:30 得分 0

1。如果注释掉最后的where   convert(char(8),   dbo.tat004.SaleDt,   112)   between   convert(char(8),   @UpperDate,   112)  
              and   convert(char(8),   @LowerDate,   112)则整个过程运行正常  
  2。如果把hjf   =   case   when   isnull((select   sum(isnull(tat005.Num,   0))   from   tat005   where   tat005.saleNo   =   tat004.saleNo),   0)  
              -   isnull((SELECT   sum(dbo.TAT001.num)  
                      FROM   dbo.TAT003   LEFT   OUTER   JOIN  
                      dbo.TAT001   ON   dbo.TAT003.OutStNo   =   dbo.TAT001.PS_NO   AND    
                      dbo.TAT003.SuiteNm   =   dbo.TAT001.SuiteNm   where   isnull(dbo.TAT003.MoneyVerifyNo,   '')   <>   ''  
                      and   dbo.TAT003.saleNo   =   dbo.TAT004.saleNo     ),   0)   =   0   then   'Y'   else   'N'   end,  
  的where   tat005.saleNo   =   tat004.saleNo注释掉而不注释第1。也能正常运行Top

2 楼txlicenhe(马可)回复于 2003-08-02 11:11:06 得分 0

friendly   upTop

3 楼Rivulet119(黑眼睛)回复于 2003-08-02 11:18:16 得分 0

语句太复杂了,为什么不用变量判断呀?Top

4 楼CrazyFor(冬眠的鼹鼠)回复于 2003-08-02 17:04:33 得分 0

存储过程语法检查有没有问题???Top

5 楼zjcxc(邹建)回复于 2003-08-02 21:57:44 得分 0

复制到查询分析器中执行,看是否能够正常运行.Top

6 楼zjcxc(邹建)回复于 2003-08-02 21:59:16 得分 0

前段时间看个一个贴子,因为楼主的视图过于复杂.最终导致不能执行.  
   
  但将视图处理的中间结果生成临时表,再接着处理,就能正确.  
   
  你说去掉最后的条件能正常执行,不知道是否也和这个情况类似.Top

7 楼pengdali()回复于 2003-08-02 22:28:39 得分 0

语法正确,属于逻辑错误,一点一点注释掉差出问题。Top

8 楼oldfoxtan(小猫熊)回复于 2003-08-03 14:48:10 得分 0

我也是无可奈何啊,需求和算法都是需求人员给我的,并且我只能照着写,而不能改任何东西!Top

9 楼oldfoxtan(小猫熊)回复于 2003-08-03 15:01:55 得分 0

to     CrazyFor(太阳下山明朝依旧爬上来)兄       和   zjcxc(邹建)兄   ,正如   pengdali(大力   V2.0)   兄所说的语法是没有任何问题的!!因为该过程已经运行了一个多月了,并且是正确的,但在1号下午(应该是插入了一些数据之后)之后就不行了,我怀疑是数据的问题(数据表的结构我也不是很清楚,因为结构是由另外的人建的)。  
          现在问题我使用了另一种方法解决,解决的方法是把select   *   into   #t2   from   dbo.tat004   where   convert(char(8),   dbo.tat004.SaleDt,   112)   between   convert(char(8),   @UpperDate,   112)  
  之后使用#2在下面的计算查询过程中代替dbo.tat004   做连接,就可以达到“1。如果注释掉最后的where   convert(char(8),   dbo.tat004.SaleDt,   112)   between   convert(char(8),   @UpperDate,   112)  
              and   convert(char(8),   @LowerDate,   112)则整个过程运行正常”  
  所说的了!  
   
  引发错误的原因我做了很多测试,但到目前为止还是未找到!!!  
  Top

相关问题

  • odbc
  • ??????????????ODBC???????????
  • ODBC
  • ODBC
  • ODBC
  • [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝
  • [Microsoft] [ODBC SQL Server Driver] [DBNETLIB] connection Write (Wrapper Write()) 这类问题真的没有真真正正的高手?(此问题我问了
  • odbc driver
  • JDBC_ODBC
  • 用户odbc→系统odbc

关键词

  • ps
  • 执行
  • tat
  • dbo
  • saleno
  • suitenm
  • taf
  • moneyverifyno
  • saledt
  • outstno

得分解答快速导航

  • 帖主:oldfoxtan

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo