Sql server 2005 使用嵌套条件时出错
我需要在存储过程中使用嵌套循环。(条件内部条件)。这件事我已经做了好几天了。我的实际代码很长,但是我粘贴了给出错误的代码。请帮我调试这段代码。此嵌套FOR条件中可能存在什么错误Sql server 2005 使用嵌套条件时出错,sql-server-2005,vb.net-2010,Sql Server 2005,Vb.net 2010,我需要在存储过程中使用嵌套循环。(条件内部条件)。这件事我已经做了好几天了。我的实际代码很长,但是我粘贴了给出错误的代码。请帮我调试这段代码。此嵌套FOR条件中可能存在什么错误 if @commissiontypee!=@commissiontypee1 or @commissionamountt!=@commissionamountt1 ( begin if exists (select debit from tbll
if @commissiontypee!=@commissiontypee1 or @commissionamountt!=@commissionamountt1
(
begin
if exists (select debit from tblledger where passportnumber=@passportnumberr and (typenumber=2 or typenumber=3)
(
begin
update tblledger set debit=@commissionamountt, typenumber=@typenumberr where ( passportnumber=@passportnumberr and (TypeNumber='2' or TypeNumber='3'))
set @initialdate= (select top(1) datetimer from tblledger where passportnumber=@passportnumberr and (typenumber=2 or typenumber=3))
set @datedifferences=datediff(day,@initialdate,getdate())
if @commissiontypee!=@commissiontypee1
(
begin
insert into tbllogfiles (OnDate,What,OfPassportnumber,ToValue,ChangedFrom,aftertime)values(getdate(),'Commission and ""COMMISSION-TYPE"" changed',@passportnumberr,@commissionamountt,commissionamount,@datedifferences)
end
else
begin
insert into tbllogfiles (OnDate,What,OfPassportnumber,ToValue,ChangedFrom,aftertime)values(getdate(),'Commission changed',@passportnumberr,@commissionamountt,commissionamount,@datedifferences)
end
)
)
else
(
begin
if @commissiontype=0
--condition
insert into tblledger (passportnumber,datetimer, typenumber,debit) values (@passportnumberr,getdate(),2,@commissionamountt)
else
--condition
insert into tblledger (passportnumber,datetimer, typenumber,debit) values (@passportnumberr,getdate(),2,@commissionamountt)
end
)
end
)
错误::BEGIN附近的语法不正确您在哪里找到IF语句所需的(和)位置?我认为(和)会使它更简单。。使用ELSE语句会使语法分析器对“它属于哪个条件”产生混淆。TSQL解析器不允许您添加语法糖/噪音,因此您的语法错误。我在上述代码中使用的逻辑条件对我来说是必要的。。我正在写一个程序,上面的逻辑对于这个程序来说是必不可少的。。。如何执行上述逻辑条件?请帮我找到这个程序的解决方案。
if @commissiontypee!=@commissiontypee1 or @commissionamountt!=@commissionamountt1
begin
if exists (select debit from tblledger where passportnumber=@passportnumberr and (typenumber=2 or typenumber=3))
begin
update tblledger set debit=@commissionamountt, typenumber=@typenumberr where ( passportnumber=@passportnumberr and (TypeNumber='2' or TypeNumber='3'))
set @initialdate= (select top(1) datetimer from tblledger where passportnumber=@passportnumberr and (typenumber=2 or typenumber=3))
set @datedifferences=datediff(day,@initialdate,getdate())
if @commissiontypee!=@commissiontypee1
begin
insert into tbllogfiles (OnDate,What,OfPassportnumber,ToValue,ChangedFrom,aftertime)values(getdate(),'Commission and ""COMMISSION-TYPE"" changed',@passportnumberr,@commissionamountt,commissionamount,@datedifferences)
end
else
begin
insert into tbllogfiles (OnDate,What,OfPassportnumber,ToValue,ChangedFrom,aftertime)values(getdate(),'Commission changed',@passportnumberr,@commissionamountt,commissionamount,@datedifferences)
end
End
else
begin
if @commissiontype=0
--condition
insert into tblledger (passportnumber,datetimer, typenumber,debit) values (@passportnumberr,getdate(),2,@commissionamountt)
else
--condition
insert into tblledger (passportnumber,datetimer, typenumber,debit) values (@passportnumberr,getdate(),2,@commissionamountt)
end
end