PL/SQL存储过程

我写了一个存储过程,createprocedurep_1asselectTPB.POLICY_ID,COUNT(TPB.ITEM_ID),SUM(TM.PREM)FROM... 我写了一个存储过程,
create procedure p_1
as
select TPB.POLICY_ID,COUNT(TPB.ITEM_ID),SUM(TM.PREM)
FROM TPB
JOIN TM
ON TPB.POLICY_ID=TM.POLICY_ID
where CATEGORY_ID=1
GROUP BY TPB.POLICY_ID,TPB.ITEM_ID,TM.PREM

是在PL/SQL里面写的,用的ORACLE数据库,但是运行不了。
如果用EXEC p_1运行的话会提示错误声明的SQL语句无效。
请哪位高手指点下哪里出错了?
如果是存储过程写得不对,那能不能请哪位帮我看下哪里不对了?应该怎么写呢?
展开
 我来答
loveyurui
2010-04-11 · TA获得超过6555个赞
知道大有可为答主
回答量:2892
采纳率:33%
帮助的人:972万
展开全部
你对着存储过程的语法再写吧

这个过程的基本语法就不对

create or replace procedure p_1 is
begin

for i in (select TPB.POLICY_ID a,COUNT(TPB.ITEM_ID) b,SUM(TM.PREM) c FROM TPB
JOIN TM ON TPB.POLICY_ID=TM.POLICY_ID

where CATEGORY_ID=1
GROUP BY TPB.POLICY_ID) loop

dbms_output.put_line(i.a);
dbms_output.put_line(i.b);
dbms_output.put_line(i.c);
end loop;
end p_1;
43662085
2010-04-11 · TA获得超过730个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:320万
展开全部
select TPB.POLICY_ID,COUNT(TPB.ITEM_ID),SUM(TM.PREM)
FROM TPB
JOIN TM
ON TPB.POLICY_ID=TM.POLICY_ID
where CATEGORY_ID=1
GROUP BY TPB.POLICY_ID

应该是这样的 后面2个是聚合的 不需要放在GROUP BY 里面的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式