学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

刚学游标,请教导一下,在线等!

刚学游标,请教导一下,在线等!

declare @xx nvarchar(15),@yy nvarchar(15)
declare zz cursor for
select 物品名称,出口规格 from 班报表2 where 出口重量>'10' and 出口规格='0.3*1003*C'
print '出口重量大于10吨的有'
open zz
fetch next from zz into @xx,@yy
while @@fetch_status = 0
begin
     fetch next from zz into @xx,@yy
print '物品名称'++'   '+'出口规格'
    print @xx+@yy
    end
close zz
deallocate zz



我希望得到的结果是,当我的出口重量 <=100  或 在100到120之间,就不再取下一条记录。在线急等回复,谢谢了。
另:为什么我显示的两个字段结果这什么贴着这么近啊?我希望是像右边那样子的。谢了。
附件: 您所在的用户组无法下载或查看附件

TOP


declare zz cursor for
select 物品名称,出口规格 from 班报表2 where 出口重量>'10' and 出口规格='0.3*1003*C'
加上在100和120之间就可以
我的msn: myfend@hotmail.com

TOP

不好意思,应该是当出口重量的合SUM(出口重量)<=100 or 在100与120之间

TOP

要么写select写sum(出口重量)

要么你
select 物品名称,出口规格,出口重量 from 班报表2 where 出口重量>'10' and 出口规格='0.3*1003*C'
在这把出口重量也输出
fetch next from zz into @xx,@yy,@出口重量变量
set @总重量=@总重量+@出口重量变量
if @总重量 ...条件.
   break  --退出循环.


...
...
--关闭游标.
我的msn: myfend@hotmail.com

TOP

declare @xx nvarchar(15),@yy nvarchar(15)
declare @zz float,@aa float
declare zz cursor for
select 物品名称,出口规格,出口重量 from 轧机班报表2 where 出口重量>'15' and 出口规格='0.3*1003*C'
group by 物品名称,出口规格,出口重量
print '出口重量大于10吨的有'
open zz
fetch next from zz into @xx,@yy,@zz
set @aa=@aa+@zz
if @aa>=100
begin
while @@fetch_status = 0
begin
     fetch next from zz into @xx,@yy,@zz

    print @xx+@yy+@zz
    end
close zz
deallocate zz


斑猪!请指导一下好吗?搞了半天搞不出来。

TOP

晕死..
我的msn: myfend@hotmail.com

TOP

[bc07] 帮帮吧,哭死

declare @xx nvarchar(15),@yy nvarchar(15)
declare @zz float,@aa float
set @aa=@aa+@zz
declare zz cursor for
select 物品名称,出口规格,出口重量 from 轧机班报表2 where 出口重量>'15' and 出口规格='0.3*1003*C'
group by 物品名称,出口规格,出口重量
print '出口重量大于10吨的有'
open zz
fetch next from zz into @xx,@yy,@zz
while @@fetch_status = 0
begin
if @aa>=100
begin
     fetch next from zz into @xx,@yy,@zz
END

    print @xx+@yy+@zz
    end
close zz
deallocate zz

将数据类型 nvarchar 转换为 float 时出错。

[ 本帖最后由 roy78 于 2008-3-8 11:06 编辑 ]

TOP

declare @xx nvarchar(15),@yy nvarchar(15),@zz nvarchar(8)
declare @aa float
declare zz cursor for
select 物品名称,出口规格,出口重量 from 班报表2 where 出口重量>'15' and 出口规格='0.3*1003*C'
group by 物品名称,出口规格,出口重量
print '出口重量大于10吨的有'
open zz
fetch next from zz into @xx,@yy,@zz
while @@fetch_status = 0
begin
set @aa=@aa+@zz
if @aa>=100
begin
     fetch next from zz into @xx,@yy,@zz

END

    print @xx+@yy+@zz
    end
close zz
deallocate zz

还是不对呀,高手指点一下吧。当合计值 >=100  或者 在100—120之间时,停止取下条记录

TOP

高手们帮帮忙吧。

TOP

发新话题