帮我看看这个存储过程怎么写?

cmsoft 2002-12-19 04:01:06
举个例子,
一个表
tbl_product


有如下字段
id 产品编号
prod_name 产品名称
prod_ismain 主产品(1为主产品,此时prod_id为空,如果它为0则为副产品,他隶属于id=prod_id这个产品)
prod_id 产品的ID号
prod_time

现在我想列出所有的prod_ismain的信息和每一个对应副产品的个数。如果单独用sql语句,可以先查询prod_ismain=1的,然后放到记录集中做一个循环,然后再select count(*) from 这个表的prod_id=rs("id")
现在我想用存储过程实现以上功能,请问怎么实现呢?3ks
...全文
25 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmsoft 2002-12-20
  • 打赏
  • 举报
回复
3ks hbwhwanghua(mikel) & all
Ouyangyifeiczy 2002-12-19
  • 打赏
  • 举报
回复
select *,b.count from tbl_product inner join (select prod_id ,count(*) as count from tbl_product where prod_ismain=0 group by prid_id
) as b on tbl_product.id=b.prod_id
uploo 2002-12-19
  • 打赏
  • 举报
回复
是啊,能不用游标时就不用。。
hbwhwanghua 2002-12-19
  • 打赏
  • 举报
回复
要解决这个问题,完全不用cursor,因为CURSOR这玩艺实在耗资源,要学嘛,当然可以尝试,也就是语法没错,就行了,也没什么,很简单,不过我看着实在有点别扭,大材小用了嘛,也望高手勿笑,呵呵!
create proc aa
as
begin
declare @prod_main int,@prod_name varchar(20),@prod_time datetime
create table #t1(id int null,prod_name varchar(20) null,prod_count int null,prod_time datetime null)
declare c1 cursor for select id,prod_name, prod_time from tbl_product
open c1
fetch next from c1 into @prod_main,@prod_name,@prod_time
while @@fetch_status = 0
begin
select @prod_maincount = count(*) from tlb_product where prod_id=@prod_main
insert into #t1(id,proc_name,prod_count,prod_time)
values(@prod_main,@prod_name,@prod_maincount,@prod_timd)
fetch next from c1 into @prod_main,@prod_name,@prod_time

end
deallocate c1
select * from #t1
end



哎,怎么看怎么别扭啊!
cmsoft 2002-12-19
  • 打赏
  • 举报
回复
能不能用游标方式实现?我是想学一下cursor
CrazyFor 2002-12-19
  • 打赏
  • 举报
回复
select id,prod_name,prod_ismain,prod_time,(select count(*) from tlb_product where prod_id=AA.id) from tlb_product AA where prod_ismain=1
cmsoft 2002-12-19
  • 打赏
  • 举报
回复
最要要显示的是

主产品的信息:
id,prod_name,此主产品下的副产品的个数,prod_time
cmsoft 2002-12-19
  • 打赏
  • 举报
回复
字段说明:
id 产品编号
prod_name 产品名称
prod_ismain 主产品(1为主产品,此时prod_id为空,如果它为0则为副产品,他隶属于prod_id=id这个产品)

prod_id 所在主产品的ID号(如果没有值,则说明它没有主产品)
prod_time

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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