Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 使用嵌套条件时出错_Sql Server 2005_Vb.net 2010 - Fatal编程技术网

Sql server 2005 使用嵌套条件时出错

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

我需要在存储过程中使用嵌套循环。(条件内部条件)。这件事我已经做了好几天了。我的实际代码很长,但是我粘贴了给出错误的代码。请帮我调试这段代码。此嵌套FOR条件中可能存在什么错误

  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