Sql server 如何在sql中按循环方式检索列值?
通过过滤实际表中的数据,我将其插入到临时表中,然后一些大容量值来自临时表,然后再次将其插入到另一个临时表中进行循环检查,并将实际表中的一些值更新到数据库中。那么,如何以循环方式检索列值呢 直到这里,我到达:Sql server 如何在sql中按循环方式检索列值?,sql-server,Sql Server,通过过滤实际表中的数据,我将其插入到临时表中,然后一些大容量值来自临时表,然后再次将其插入到另一个临时表中进行循环检查,并将实际表中的一些值更新到数据库中。那么,如何以循环方式检索列值呢 直到这里,我到达: CREATE TABLE #result ( PackagePeriod varchar(20), UserId INT, OldEx
CREATE TABLE #result
(
PackagePeriod varchar(20),
UserId INT,
OldExpiryDate DATE,
AmountToPay FLOAT,
PyingAmount FLOAT,
Balance FLOAT,
LastPaidDate DATE,
Company_Id INT
)
create table #temp
(
PackagePeriod varchar(20),
UserId INT,
OldExpiryDate DATE,
AmountToPay FLOAT,
PyingAmount FLOAT,
Balance FLOAT,
LastPaidDate DATE,
Company_Id INT
)
SET @cmd ='.... where OldExpiryDate<=Replace(CONVERT(VARCHAR(20), (GetDate()-1), 106),' ','-')
select @count=(select COUNT(PackagePeriod) from #temp)
if(PackagePeriod='Monthly')
begin
update ...
end
else if(PackagePeriod='Quarterly')
begin
update ..
CREATE TABLE#结果
(
包装周期varchar(20),
UserId INT,
过期日期,
金额支付浮动,
PyingAmount浮标,
平衡浮动,
最后日期,
公司Id INT
)
创建表#temp
(
包装周期varchar(20),
UserId INT,
过期日期,
金额支付浮动,
PyingAmount浮标,
平衡浮动,
最后日期,
公司Id INT
)
设置@cmd='。。。。你的问题不清楚。我想你可以用游标或While来解决你的问题
CREATE TABLE #result
(
PackagePeriod varchar(20),
UserId INT,
OldExpiryDate DATE,
AmountToPay FLOAT,
PyingAmount FLOAT,
Balance FLOAT,
LastPaidDate DATE,
Company_Id INT
)
declare @PackagePeriod varchar(20)
declare @UserId int
declare @OldExpiryDate DATE
declare @AmountToPay FLOAT
declare @PyingAmount FLOAT
declare @Balance FLOAT
declare @LastPaidDate DATE
declare @Company_Id INT
declare result_cursor cursor for
SELECT PackagePeriod, UserId, OldExpiryDate, AmountToPay, PyingAmount, Balance, LastPaidDate, Company_Id from #result
OPEN result_cursor
FETCH NEXT FROM result_cursor INTO @PackagePeriod, @UserId, @OldExpiryDate, @AmountToPay, @PyingAmount, @Balance, @LastPaidDate, @Company_Id
WHILE @@FETCH_STATUS = 0
BEGIN
if(@PackagePeriod='Monthly')
begin
-- update your table
end
else if(@PackagePeriod='Quarterly')
begin
--update table
end
FETCH NEXT FROM result_cursor INTO @PackagePeriod, @UserId, @OldExpiryDate, @AmountToPay, @PyingAmount, @Balance, @LastPaidDate, @Company_Id
END
CLOSE result_cursor
DEALLOCATE result_cursor
提供一些示例数据和预期输出。那个存储过程乱七八糟。正如所贴的,这没有多大意义。我想提醒你,听起来你把事情弄得比实际需要复杂得多。此外,您似乎有一些数据类型可能不适合您正在做的事情。这似乎是一个金融应用程序,因为这样的浮动通常是一个糟糕的选择,因为它不是一个精确的数据类型。那么解决方案是什么呢?Thanq非常理解我的确切问题和确切的最佳答案。