sql - 'itemview' 附近的存储过程语法不正确
sql - stored procedure Incorrect syntax near 'itemview'
declare @query nvarchar(4000)
set @query='SELECT InsightsLogs.ContentItemType, COUNT(InsightsLogs.UserId) AS nbr, CONT_COMP.MAIN'
set @query= @query + ' FROM InsightsLogs INNER JOIN CONT_COMP ON InsightsLogs.K_Contact = CONT_COMP.K_CONTACT'
set @query= @query + ' WHERE InsightsLogs.EventType =N"'itemview'" AND (InsightsLogs.K_Contact IS NOT NULL) AND (CONT_COMP.K_COMPANY <> 1) AND (CONT_COMP.MAIN = 1)'
--set @query= @query + ' AND (Date_Visite >= CONVERT(DATETIME, "' + @date1 + ' 00:00:00", 102))'
--set @query= @query + ' AND (Date_Visite < CONVERT(DATETIME, "' + @date2 + ' 00:00:00", 102))'
set @query= @query + ' GROUP BY dbo.InsightsLogs.UserId'
exec sp_executesql @query
如何修改项目视图???总是相同的消息,itemview 附近的语法不正确
InsightsLogs.EventType =N"'itemview'"
谢谢
而不是double-quotes:
=N"'itemview'"
使用两个单引号:
=N''itemview''
不是很清楚你想在这里做什么或者你为什么需要动态sql。我怀疑您使用动态 sql 不是因为需要它,而是因为您不确定如何执行此操作。我试图对这个查询进行排序。请注意,通过使用一些格式和一些别名,这真的很容易看到发生了什么,而不是所有东西都堆积成一堵文本墙。
SELECT il.ContentItemType
, COUNT(il.UserId) AS nbr
, c.MAIN
FROM InsightsLogs il
INNER JOIN CONT_COMP c ON il.K_Contact = c.K_CONTACT
WHERE il.EventType =N'itemview'
AND il.K_Contact IS NOT NULL
AND c.K_COMPANY <> 1
AND c.MAIN = 1
--AND (Date_Visite >= CONVERT(DATETIME, @date1 + ' 00:00:00', 102))
--AND (Date_Visite < CONVERT(DATETIME, @date2 + ' 00:00:00', 102))
GROUP BY il.UserId , c.MAIN
现在,如果您需要将其作为存储过程,只需将此查询作为过程的主体即可。
declare @query nvarchar(4000)
set @query='SELECT InsightsLogs.ContentItemType, COUNT(InsightsLogs.UserId) AS nbr, CONT_COMP.MAIN'
set @query= @query + ' FROM InsightsLogs INNER JOIN CONT_COMP ON InsightsLogs.K_Contact = CONT_COMP.K_CONTACT'
set @query= @query + ' WHERE InsightsLogs.EventType =N"'itemview'" AND (InsightsLogs.K_Contact IS NOT NULL) AND (CONT_COMP.K_COMPANY <> 1) AND (CONT_COMP.MAIN = 1)'
--set @query= @query + ' AND (Date_Visite >= CONVERT(DATETIME, "' + @date1 + ' 00:00:00", 102))'
--set @query= @query + ' AND (Date_Visite < CONVERT(DATETIME, "' + @date2 + ' 00:00:00", 102))'
set @query= @query + ' GROUP BY dbo.InsightsLogs.UserId'
exec sp_executesql @query
如何修改项目视图???总是相同的消息,itemview 附近的语法不正确
InsightsLogs.EventType =N"'itemview'"
谢谢
而不是double-quotes:
=N"'itemview'"
使用两个单引号:
=N''itemview''
不是很清楚你想在这里做什么或者你为什么需要动态sql。我怀疑您使用动态 sql 不是因为需要它,而是因为您不确定如何执行此操作。我试图对这个查询进行排序。请注意,通过使用一些格式和一些别名,这真的很容易看到发生了什么,而不是所有东西都堆积成一堵文本墙。
SELECT il.ContentItemType
, COUNT(il.UserId) AS nbr
, c.MAIN
FROM InsightsLogs il
INNER JOIN CONT_COMP c ON il.K_Contact = c.K_CONTACT
WHERE il.EventType =N'itemview'
AND il.K_Contact IS NOT NULL
AND c.K_COMPANY <> 1
AND c.MAIN = 1
--AND (Date_Visite >= CONVERT(DATETIME, @date1 + ' 00:00:00', 102))
--AND (Date_Visite < CONVERT(DATETIME, @date2 + ' 00:00:00', 102))
GROUP BY il.UserId , c.MAIN
现在,如果您需要将其作为存储过程,只需将此查询作为过程的主体即可。