0

我有一个嵌套的 if 语句存储过程,但它给了我错误:

消息 102,级别 15,状态 1,过程 SPCRMDoctorRequestList,第 28 行
“DR”附近的语法不正确。

这是在第二个 if 语句的 else 部分

这是我的存储过程:

CREATE PROCEDURE [dbo].[SPCRMList]
@Records INT,
@Type VARCHAR(10),  /*Recent, Priority, Pending, Approved*/
@ViewType VARCHAR(10)   /*Dashboard, List*/
AS
BEGIN
SET NOCOUNT ON
IF (@Type = 'Recent')
BEGIN
    IF(@ViewType = 'Dashboard')
    BEGIN
        Select top (@Records)
        DR.Id AS Id,    /*Unique ID*/
        USERS.USERNAME AS Requester_Name,       /*Employee Name*/
        ST.ServiceName AS Service_Type_Name,    /*Nature of Service*/
        DR.Date_Created AS Date_Created    /*Created Date*/
        From [Doctor_Request] AS DR
        JOIN [ASES].[dbo].[USERS] AS USERS
        ON DR.Requester COLLATE SQL_Latin1_General_CP1_CI_AS = USERS.RID COLLATE SQL_Latin1_General_CP1_CI_AS
        JOIN [SERVICE_TYPE] AS ST
        ON DR.Service_Type_Id=ST.Id
        WHERE DR.Is_Deleted=0
        ORDER BY DR.Date_Created DESC
    END
    ELSE IF (@ViewType = 'List')
    BEGIN
        Select top (@Records)
        DR.Id AS Id,    /*Unique ID*/
        USERS.USERNAME AS Requester_Name,       /*Employee Name*/
        ST.ServiceName AS Service_Type_Name,    /*Nature of Service*/
        DR.Date_Created AS Date_Created    /*Created Date*/
            DR.State AS State /*State of Request*/
            DR.Deadline AS Deadline /*Deadline of request*/
        From [Doctor_Request] AS DR
        JOIN [USERS] AS USERS
        ON DR.Requester COLLATE SQL_Latin1_General_CP1_CI_AS = USERS.RID COLLATE SQL_Latin1_General_CP1_CI_AS
        JOIN [SERVICE_TYPE] AS ST
        ON DR.Service_Type_Id=ST.Id
        WHERE DR.Is_Deleted=0
        ORDER BY DR.Date_Created DESC
    END
END
4

1 回答 1

3

您没有DR两个查询中定义表别名。例如它应该像

Select DR.colName, X.colName
from Table1 DR join Table2 X on DR.id = X.id
...

同样在您的第二个查询中,您需要在...commas之后的列旁边添加一个Date_Created

SELECT ...
    DR.Date_Created AS Date_Created,    /*Created Date*/
    DR.State AS State, /*State of Request*/
    DR.Deadline AS Deadline /*Deadline of request*/
FROM ...
于 2013-02-12T12:11:14.107 回答