帮忙看一下存储过程的问题?谢谢

godhuang 2005-07-19 03:34:18
1、下面用游标显示数据是一行一行显示的,有没有办法显示一个整体;
2、第一次写游标,帮忙优化一下

set nocount on
declare @sid varchar(20)
declare @sname varchar(100)
declare @lname varchar(100)
declare @sid2 varchar(20)
declare @sname2 varchar(100)
declare @lname2 varchar(100)

declare show cursor for
select a.supplyid,b.supplyname,a.licensename
from supply_license a left join supply b on a.supplyid = b.supplyid
order by a.supplyid

open show
FETCH NEXT FROM show into @sid,@sname,@lname
select @sid as sid,@sname as sname,@lname as lname
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM show into @sid2,@sname2,@lname2
if (@sid = @sid2 and @sname = @sname2 )
begin
select '' as sid,'' as sname,@lname2 as lname
set @sid = @sid2
set @sname = @sname2
set @lname = @lname2
end
else
begin
select @sid2 as sid,@sname2 as sname,@lname2 as lname
set @sid = @sid2
set @sname = @sname2
set @lname = @lname2
end
END

CLOSE show
DEALLOCATE show
set nocount off

本来写这个的目的如下面:
00001 沈阳统一企业有限公司 生产许可证
00001 沈阳统一企业有限公司 卫生许可证
00001 沈阳统一企业有限公司 商标注册证
00001 沈阳统一企业有限公司 营业执照
00001 沈阳统一企业有限公司 企业标准
写语句变成
00001 沈阳统一企业有限公司 生产许可证
卫生许可证
商标注册证
营业执照
企业标准
先谢谢各位
...全文
82 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
godhuang 2005-07-20
licensename<a.licensename

这个是什么意思?
回复
子陌红尘 2005-07-20
try:
----------------------------------------------------------------------
select
supplyid_1 = (case
when exists(select 1 from supply_license where supplyid=a.supplyid and licensename<a.licensename)
then ''
else a.supplyid
end),
supplyname_1 = (case
when exists(select 1 from supply_license where supplyid=a.supplyid and licensename<a.licensename)
then ''
else b.supplyname
end),
a.licensename
from
supply_license a
left join
supply b
on
a.supplyid = b.supplyid
order by
a.supplyid,a.licensename
回复
godhuang 2005-07-20
请高手帮忙一下
回复
godhuang 2005-07-19
up 一下
回复
flyfing 2005-07-19
CASE条件少的话,用CASE语句写估计比较方便。
看楼主列出来的数据,估计条件不少,用CASE语句写起来估计可能很麻烦
回复
godhuang 2005-07-19
怎么写?楼上的
回复
chichunhua 2005-07-19
好像不用游標就可以實現的,用case語句吧
回复
zzebra 2005-07-19
想看看你的数据表,联系一下.

MSN: zebra0330@hotmail.com
QQ: 4315259
回复
zzebra 2005-07-19
想看看你的数据表,联系一下.

MSN: zebra0330@hotmail.com
QQ: 4315259
回复
zzebra 2005-07-19
数据表拿来看看

QQ:4315259
回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-07-19 03:34
社区公告
暂无公告