Sql游标使用2例
2011-07-26 11:49
288 查看
------------------------------------------------------
付款成功7日内无异常自动到卖家
declare @OID int
declare @SerialNumber nvarchar(100)
declare @UserID int
DECLARE @Prices_Total decimal
DECLARE @Amount decimal
declare cursor1 cursor for
SELECT [OID],[SerialNumber],[UserID],[Prices_Total] FROM [Quan_Orders] WHERE STATUS = 1 AND datediff(day,[AddTime],getdate()) > 7
open cursor1
fetch next from cursor1 into @OID,@SerialNumber,@UserID,@Prices_Total
while @@fetch_status=0
begin
DECLARE @Total decimal
SET @Total= @Prices_Total
IF (EXISTS(select Amount from Quan_Amount where UserID=@UserID))
BEGIN
select top 1 @Amount=Amount from Quan_Amount where UserID=@UserID order by id desc
SET @Total=@Total + @Amount
END
update Quan_Orders set Status=3 WHERE [SerialNumber] =@SerialNumber
INSERT INTO [Quan_Amount] ([UserID],[Type],[Detail],[Income],[Expense],[Amount],[Addtime]) VALUES (@UserID,'收入','订单:'+@SerialNumber+',收取货款',@Prices_Total,0,@Total,getdate())
fetch next from cursor1 into @OID,@SerialNumber,@UserID,@Prices_Total
end
close cursor1
deallocate cursor1
----------------------------------
退券每小时
declare @ID int
declare @BuyID int
declare @UID int
DECLARE @ExpectedPrice decimal
declare cursor1 cursor for
SELECT [ID],[BuyID],[ExpectedPrice],[UID] FROM [G_IdleCommodityLog] WHERE STATUS = 0 AND datediff(day,[AddTime],getdate())> -2
open cursor1
fetch next from cursor1 into @ID,@BuyID,@ExpectedPrice,@UID
while @@fetch_status=0
begin
update G_IdleCommodityLog set Status = 1 where id=@id
update KyUsers set yellowboy=yellowboy+@ExpectedPrice where userid=@UID
insert into yellowBoy_Detail(typeid,yellowBoy,avenueRelative,avenue,uid,addtime) values(2,@ExpectedPrice,'','退券',@UID,getdate())
update G_account set status=-2 where buyid=@BuyID
update G_buyList set status=3 where buyid=@BuyID
fetch next from cursor1 into @ID,@BuyID,@ExpectedPrice,@UID
end
close cursor1
deallocate cursor1
付款成功7日内无异常自动到卖家
declare @OID int
declare @SerialNumber nvarchar(100)
declare @UserID int
DECLARE @Prices_Total decimal
DECLARE @Amount decimal
declare cursor1 cursor for
SELECT [OID],[SerialNumber],[UserID],[Prices_Total] FROM [Quan_Orders] WHERE STATUS = 1 AND datediff(day,[AddTime],getdate()) > 7
open cursor1
fetch next from cursor1 into @OID,@SerialNumber,@UserID,@Prices_Total
while @@fetch_status=0
begin
DECLARE @Total decimal
SET @Total= @Prices_Total
IF (EXISTS(select Amount from Quan_Amount where UserID=@UserID))
BEGIN
select top 1 @Amount=Amount from Quan_Amount where UserID=@UserID order by id desc
SET @Total=@Total + @Amount
END
update Quan_Orders set Status=3 WHERE [SerialNumber] =@SerialNumber
INSERT INTO [Quan_Amount] ([UserID],[Type],[Detail],[Income],[Expense],[Amount],[Addtime]) VALUES (@UserID,'收入','订单:'+@SerialNumber+',收取货款',@Prices_Total,0,@Total,getdate())
fetch next from cursor1 into @OID,@SerialNumber,@UserID,@Prices_Total
end
close cursor1
deallocate cursor1
----------------------------------
退券每小时
declare @ID int
declare @BuyID int
declare @UID int
DECLARE @ExpectedPrice decimal
declare cursor1 cursor for
SELECT [ID],[BuyID],[ExpectedPrice],[UID] FROM [G_IdleCommodityLog] WHERE STATUS = 0 AND datediff(day,[AddTime],getdate())> -2
open cursor1
fetch next from cursor1 into @ID,@BuyID,@ExpectedPrice,@UID
while @@fetch_status=0
begin
update G_IdleCommodityLog set Status = 1 where id=@id
update KyUsers set yellowboy=yellowboy+@ExpectedPrice where userid=@UID
insert into yellowBoy_Detail(typeid,yellowBoy,avenueRelative,avenue,uid,addtime) values(2,@ExpectedPrice,'','退券',@UID,getdate())
update G_account set status=-2 where buyid=@BuyID
update G_buyList set status=3 where buyid=@BuyID
fetch next from cursor1 into @ID,@BuyID,@ExpectedPrice,@UID
end
close cursor1
deallocate cursor1
相关文章推荐
- SQL 游标使用实例
- SQL 游标使用
- ORACLE动态游标及动态SQL使用实例
- SQL游标使用实例
- SQL——使用游标进行遍历
- SQL循环游标的使用
- SQL游标原理和使用方法
- 第十四篇 SQL游标、函数的使用方法
- sql游标的使用范例
- Sql Oracle 游标使用全解
- MS Sql Server临时表和游标的使用小总结
- SQL 使用Cursor(游标)遍历结果集
- SQL 游标的使用
- sql游标的使用
- 游标变量、动态sql及变量绑定的使用
- SQL游标的使用
- 如何在定义游标的时候使用动态sql语句
- 游标变量、动态sql及变量绑定的使用
- Oracle笔记 九、PL/SQL 游标的使用
- SQL游标的使用(转载)