0

TMP_HELLO中有实时CRM数据,希望通过seq获取最新产品

CREATE VIEW dbcrm.V_HELLO AS
CREATE TEMPORARY TABLE temp_table (count int);
insert into temp_table select max(seq) from dbcrm.TMP_HELLO group by ProductID;
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT minute(aa.UpdateOn) - minute(aa.TickTime), aa.* 
FROM dbcrm.TMP_HELLO aa
where aa.seq in (select count from temp_table) limit 10000;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

此视图供 MS SQL Server 的链接服务器读取

4

1 回答 1

3

创建视图时不能使用临时表。请参阅MSDN - CREATE VIEW页面;具体参见“视图定义中的 SELECT 子句不能包含以下内容”部分:

如果您实际上使用的是 Microsoft SQL Server(而不是问题上的标签所建议的 MySQL),则可以使用 CTE 而不是临时表。几个关于 CTE 的好页面:

SQL Server CTE 基础知识

MSDN - 使用公用表表达式

MSDN - 与 common_table_expression

于 2013-10-03T06:01:55.753 回答