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 - WITH common_table_expression

于 2013-10-03T06:01:55.753 に答える