2013-10-03 16 views
0

有實時CRM數據TMP_HELLO,只是希望通過以次來獲得最新的產品如何創建臨時表鑑於在MySQL

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服務器的鏈接服務器來讀取

回答

2

創建視圖時不能使用臨時表。請參閱MSDN - CREATE VIEW頁面;具體請參閱「視圖定義中的SELECT子句不能包含以下內容」一節:「

如果您實際使用的是Microsoft SQL Server(而不是MySQL作爲問題的標籤提示),則可以使用CTE的臨時表。關於熱膨脹係數夫婦的良好頁:

SQL Server CTE Basics

MSDN - Using Common Table Expressions

MSDN - WITH common_table_expression

+1

-1 OP是使用MySQL。從標籤和查詢文本中清除。當他說MSSQL通過鏈接服務器訪問視圖時也很清楚。 –

+2

無論數據庫如何,您都不能在視圖中使用臨時表,所以我的答案仍然正確。只是建議做什麼而沒有幫助。而恕我直言,它不是很清楚他們在做什麼,所以我想我會建議一個CTE以防萬一。 –