我写了一个存储过程,老是执行不了,说是ASA Error:-131;syntax error near ','能不能帮我看下

winwhere 2002-03-16 11:32:25
目的:要求出进发存汇总表:如:上期结存|本期入库|本期出库|期末结存
pjnr2为存储出入库单的表,表中字段pjlb 的0-9表示入库类别,A-F表示出库类别

//加上注释,原先没有

Create procedure dba.sp_hzb_jxc (@rq1 long,@rq2 long)//rq:日期,如20020301为long型,数据库设为integer型.
AS
Begin
//创建临时表
create table #hzb_jxc(bz char(1),ckbh char(4),cpbh0 char(15),rk_sl double,rk_slb double,rk_je double,ck_sl double,ck_slb double,ck_je double,jc_sl double,jc_slb double,jc_je double)

///将选取的字段插入临时表。
Insert into #hzb_jxc(bz,ckbh,cpbh0,rk_sl,rk_slb,rk_je,ck_sl,ck_slb,ck_je,jc_sl,jc_slb,jc_je)
select '1',ckbh,cpbh0,sum(sl),sum(sl_b),sum(sl*dj),0,0,0,0,0,0 From pjnr2
Where ny <= @rq2 and pjlb <= '9'
group by ckbh,cpbh0
//将选取的字段插入临时表
Insert into #hzb_jxc(bz,ckbh,cpbh0,rk_sl,rk_slb,rk_je,ck_sl,ck_slb,ck_je,jc_sl,jc_slb,jc_je)
select '1',ckbh,cpbh0,0,0,0,sum(sl),sum(sl_b),sum(sl*dj),0,0,0 From pjnr2
Where ny <= @rq2 and pjlb >= 'A'
group by ckbh,cpbh0

//将选取的字段插入临时表
Insert into #hzb_jxc(bz,ckbh,cpbh0,rk_sl,rk_slb,rk_je,ck_sl,ck_slb,ck_je,jc_sl,jc_slb,jc_je)
select '2',ckbh,cpbh0,0,0,0,0,0,0,sum(rk_sl - ck_sl),sum(rk_slb - ck_slb),sum(rk_je - ck_je) From #hzb_jxc
Where bz = '1'
group by ckbh,cpbh0

//从临时表中删除,先前汇总的内容,
delete from #hzb_jxc Where bz = '1'

Insert into #hzb_jxc (bz,ckbh,cpbh0,rk_sl,rk_slb,rk_je,ck_sl,ck_slb,ck_je,jc_sl,jc_slb,jc_je)
Select '2',ckbh,cpbh0,sum(sl),sum(sl_b),sum(sl*dj),0,0,0,0,0,0 From pjnr2
where pjlb <= '9' And (ny >= @rq1 and ny <= @rq2)
group by ckbh,cpbh0

Insert into #hzb_jxc (bz,ckbh,cpbh0,rk_sl,rk_slb,rk_je,ck_sl,ck_slb,ck_je,jc_sl,jc_slb,jc_je)
Select '2',ckbh,cpbh0,0,0,0,sum(sl),sum(sl_b),sum(sl*dj),0,0,0
From pjnr2
where pjlb >= 'A' And (ny >= @rq1 and ny <= @rq2)
group by ckbh,cpbh0

select ckbh,cpbh0,sum(jc_sl + ck_sl - rk_sl),sum(jc_slb + ck_slb - rk_slb),sum(jc_je + ck_je - rk_je),sum(rk_sl),sum(rk_slb),sum(rk_je),sum(ck_sl),sum(ck_slb),sum(ck_je),sum(jc_sl),sum(jc_slb),sum(jc_je)
From #hzb_jxc
group by ckbh,cpbh0

End
...全文
1105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
long5 2002-03-16
  • 打赏
  • 举报
回复
关注!
zhanwei 2002-03-16
  • 打赏
  • 举报
回复
好好查一下你的where 语句,该加上表名的先加上再试,调试存储过程就需要胆大心细,慢慢来吧,关于-131,原文如下:
Syntax error near '%1'
Item Value SQLCODE
-131
Constant
SQLE_SYNTAX_ERROR
SQLSTATE 42W04
Sybase error code 102
ODBC 2 State 37000
ODBC 3 State 42000
Parameter 1
The word or symbol where the syntax error has been detected.
Probable cause
The database server cannot understand the statement you are trying to execute. If you used a keyword (such as DATE) for a column name, try enclosing the keyword in quotation marks ("DATE").
winwhere 2002-03-16
  • 打赏
  • 举报
回复
在ASA7.0中有没有 调试存储过程的地方,在存储过程向导里面的那个提示,不知所云
winwhere 2002-03-16
  • 打赏
  • 举报
回复
查到了,是参数的数据类型错误,把 long 换成integer 一切OK,

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧