0

このクエリを SQL Fiddle で実行すると、完全に実行されます。

;with cte as 
(SELECT 
 analysisvalue.analysisid, 
 heatname, 
 analysistime, 
 sampletype,
 grade, 
 productid, 
 element, 
 value 
 FROM 
 dbo.AnalysisValue 
 INNER JOIN 
 dbo.CAnalysis 
 ON 
 dbo.AnalysisValue.AnalysisID = dbo.CAnalysis.AnalysisID
 WHERE 
 heatname = 'A7M0066' 
 )
 SELECT 
      * 
 FROM 
 S_analysis s
 CROSS JOIN (SELECT TOP 1 analysistime
 FROM cte
 ORDER BY analysisid desc
 ) c
 WHERE s.heat_no = 'A7M0066' OR
 (s.analysis_datetime BETWEEN c.analysistime AND DATEADD(hh, 2, c.analysistime ))

ただし、SQL Server 2012 で実行すると、先頭にセミコロンが付いた次のエラーが表示されます。

Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ';'.

そして、セミコロンがない場合のこのエラー:

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'with'.
4

1 に答える 1