【发布时间】:2016-10-13 10:42:57
【问题描述】:
在执行过程时出现错误:
消息 156,级别 15,状态 1,过程 GET_USER_REPORT_DATA,第 19 行
关键字“select”附近的语法不正确。消息 102,级别 15,状态 1,过程 GET_USER_REPORT_DATA,第 23 行
')' 附近的语法不正确。
这是程序
ALTER PROCEDURE [dbo].[GET_USER_REPORT_DATA]
@From_Date datetime,
@To_Date datetime
AS
BEGIN
Select *
into #GetUserTable
from
(select distinct
a.N_UserMkey, b.mkey,
ISNULL(b.first_name + ' ' , '') + ISNULL(b.last_name,'') NAME
from
inward_doc_tracking_trl AS a
inner join
user_mst AS b on a.N_UserMkey = b.mkey
where
a.U_datetime between @From_Date and @To_Date
select distinct
a.mkey, b.ref_mkey
from
inward_doc_tracking_hdr AS a
inner join
inward_doc_tracking_trl AS b on a.mkey = b.ref_mkey
and a.U_datetime between @From_Date and @To_Date
) as xx
SELECT * FROM #GetUserTable
DROP TABLE #GetUserTable
END
【问题讨论】:
-
我认为您可能忘记在内部查询中的两个 select 语句之间放置 union 或 join
-
@navnit:我已经尝试过使用
union,但它在询问All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists -
正是您的第一个查询返回三个字段,而您的第二个查询返回两个字段。如果你想使用联合,它必须在两个查询中都是平等的
-
那么我应该怎么做才能使它成为一个查询,但将第二个查询中的
mkey添加到第一个表中。有什么想法吗? -
看,如果我运行第一个查询,我将得到 3 列。我只想再添加一列,即
inward_doc_tracking_hdr表中的 mkey
标签: sql sql-server stored-procedures sql-server-2005