Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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中使用union和internaljoin_Sql_Sql Server - Fatal编程技术网

在SQL中使用union和internaljoin

在SQL中使用union和internaljoin,sql,sql-server,Sql,Sql Server,我有下面的函数,它合并两个具有相同字段但数据不同的表,然后对一些字段执行内部联接。 然而,我得到了一个“不正确的语法附近的'id'”的id,毕竟。我努力想知道我的语法哪里不正确 IF (@booking_id is NULL AND @id is NULL) BEGIN SELECT A.id, A.booking_id, A.todo_type, A.due, A.urgent, A.status, A.comment

我有下面的函数,它合并两个具有相同字段但数据不同的表,然后对一些字段执行内部联接。 然而,我得到了一个“不正确的语法附近的'id'”的id,毕竟。我努力想知道我的语法哪里不正确

IF (@booking_id is NULL AND @id is NULL)
    BEGIN

    SELECT

    A.id,
    A.booking_id,
    A.todo_type,
    A.due,
    A.urgent,
    A.status,
    A.comment,
    A.create_user,
    A.create_date,
    A.delete_date,
    B.first_name, 
    B.last_name, 
    H.holiday_name, 
    H.date_start,
    H.date_end,
    TT.lookup_desc todo_type_desc,
    TS.lookup_desc status_desc

    FROM

    (
        SELECT
        id, booking_id, todo_type, due, urgent, status, comment, create_user, create_date, delete_date
        FROM
        [TODO]
        UNION ALL
        id, booking_id, todo_type, due, urgent, status, comment, create_user, create_date, delete_date
        FROM
        [TODO_OPERATOR]
    )

    A

    INNER JOIN LOOKUP TT ON A.todo_type=TT.lookup_id
    INNER JOIN LOOKUP TS ON A.status=TS.lookup_id
    INNER JOIN BOOKING B ON A.booking_id=B.booking_id
    INNER JOIN HOLIDAY_REF H ON B.holiday_id=H.holiday_id

    WHERE A.delete_date is NULL and TS.lookup_desc<>'Closed'
    ORDER BY A.create_date
    END
如果(@booking\u id为空,@id为空)
开始
挑选
A.id,
A.预订id,
A.待办事项类型,
A.到期,
A.紧急,
A.地位,
A.评论,
A.创建用户,
A.创建日期,
A.删除日期,
名字,
姓,
H.你的名字,
开始日期,
H.日期(完),
TT.lookup_desc todo_type_desc,
TS.lookup\u desc status\u desc
从…起
(
挑选
id、预订id、待办事项类型、到期、紧急、状态、评论、创建用户、创建日期、删除日期
从…起
[待办事项]
联合所有
id、预订id、待办事项类型、到期、紧急、状态、评论、创建用户、创建日期、删除日期
从…起
[待办事项接线员]
)
A.
A.todo_type=TT.LOOKUP_id上的内部联接查找TT
A.status=TS.LOOKUP\u id上的内部联接查找TS
A.BOOKING\u id=B.BOOKING\u id上的内部加入预订B
B.HOLIDAY\u id=H.HOLIDAY\u id上的内部连接假日参考H
其中A.delete_date为NULL,TS.lookup_desc“Closed”
按A.create\u日期订购
结束

您需要在您的
全部联合后添加
选择

SELECT
    id, booking_id, todo_type, due, urgent, status, comment, create_user, create_date, delete_date
    FROM
    [TODO]
UNION ALL
SELECT
    id, booking_id, todo_type, due, urgent, status, comment, create_user, create_date, delete_date
    FROM
    [TODO_OPERATOR]

这看起来像SQL Server代码,所以我添加了标记。