Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 使用IF的存储过程_Sql_Sql Server 2008_If Statement_Stored Procedures - Fatal编程技术网

Sql 使用IF的存储过程

Sql 使用IF的存储过程,sql,sql-server-2008,if-statement,stored-procedures,Sql,Sql Server 2008,If Statement,Stored Procedures,我需要一些帮助,我对SQL还是有点陌生。我有一个作为smartobject从另一个应用程序执行的存储过程。te更改前的代码与第1节中的代码类似。我根据第2节更改了代码,这样存储过程将首先查看Sales id类型是否实际上是3,并与存储过程中memberships表中的membershipnumber进行比较,然后在members表中执行相同的操作。如果查询是带有成员编号的3,我希望它使用members表中的到期日,而不是节中的到期日 选择@ExpiryDate=DATEADDYEAR,1,DAT

我需要一些帮助,我对SQL还是有点陌生。我有一个作为smartobject从另一个应用程序执行的存储过程。te更改前的代码与第1节中的代码类似。我根据第2节更改了代码,这样存储过程将首先查看Sales id类型是否实际上是3,并与存储过程中memberships表中的membershipnumber进行比较,然后在members表中执行相同的操作。如果查询是带有成员编号的3,我希望它使用members表中的到期日,而不是节中的到期日

选择@ExpiryDate=DATEADDYEAR,1,DATEADDd,-1,DATEADDm,0,@CreatedDate

这将使当前日期增加364天

第一节

第二节


请试试这个,因为你没有包括所有的栏目,所以很难完成这个答案

   SELECT @ExpiryDate = M.MembershipExpiry From Memberships M WHERE M.MembershipNumber = @MembershipNumber AND M.SalesTypeId = 3 AND M.[Enabled] =1

        IF @ExpiryDate IS NULL
        BEGIN
           SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
        end
将代码更改为

开始 从成员M中选择@ExpiryDate=MembershipExpiry,其中M.MembershipNumber=@MembershipNumber Memberships MS,其中M.MembershipNumber=@MembershipNumber和SalesTypeId=3,MS.[Enabled]=1

    IF @ExpiryDate IS NULL
            SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
END

您的问题是什么?当我尝试在我添加的部分上运行存储过程时,它会给我错误,不确定我是否正确使用了命令。请添加您的错误,以及您试图解决的问题,我将尝试帮助MSG 156,级别15,状态1,过程CP\U Create\U Card,第30行关键字“FROM”附近的语法不正确。Msg 156,15级,状态1,程序CP_创建卡,第32行关键字“FROM”附近语法不正确。Msg 156,级别15,状态1,过程CP_Create_Card,第34行关键字“OR”附近的语法不正确。我试图通知存储过程,如果SalestypeID的成员资格表上的值为3,则应使用成员资格表中相同成员资格号的到期日期,如果在启用的SalestypeID中发现3=1。如果不是,它应该使用语句SELECT@ExpiryDate=DATEADDYEAR,1,DATEADDd,-1,DATEADDm,0,@CreatedDateHi我尝试了给定的代码,但它从错误的表中提取了列。我调整了代码,但只有当M.SalesTypeId=3和M.[Enabled]=1必须使用到期日时,我才会在第二个“and and table name”上得到and erro
   SELECT @ExpiryDate = M.MembershipExpiry From Memberships M WHERE M.MembershipNumber = @MembershipNumber AND M.SalesTypeId = 3 AND M.[Enabled] =1

        IF @ExpiryDate IS NULL
        BEGIN
           SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
        end
    IF @ExpiryDate IS NULL
            SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
END