我在MSSQL下面的SQL語句2008年SQL - 使用與條款,收到錯誤
use gasnominations
INSERT INTO dbo.GasData (readDate,TagName,Value, amendedValue)
with emptce as
(SELECT timestamp AS Interval, Left(Right(TagName,Len(TagName)-5),Len(TagName)-10) as TagName,
CONVERT(decimal(10, 3), ROUND(value, 3)) As Value
FROM
OPENQUERY(IHISTORIAN,'
SET starttime =''yesterday +6h'', endtime =''today +6h''
SELECT timestamp, tagname, value
FROM ihRawData
WHERE tagname = "UMIS.99FC9051.F_CV"
OR tagname = "UMIS.99F851C.F_CV"
OR tagname = "UMIS.35GTGAS.F_CV"
OR tagname = "UMIS.35HRSGGAS.F_CV"
OR tagname = "UMIS.99XXG546.F_CV"
OR tagname = "UMIS.99XXG547.F_CV"
OR tagname = "UMIS.99F9082.F_CV"
OR tagname = "UMIS.99FC20107.F_CV"
OR tagname = "UMIS.95FIQ5043.F_CV"
OR tagname = "UMIS.99PBGAS.F_CV"
OR tagname = "UMIS.99FE1100.F_CV"
OR tagname = "UMIS.99FE1200.F_CV"
OR tagname = "UMIS.99FC8279.F_CV"
OR tagname = "UMIS.35FI8316.F_CV"
AND timestamp BETWEEN ''timestamp'' and ''timestamp''
AND SamplingMode =Calculated
AND CalculationMode =Average
AND IntervalMilliseconds =1h
ORDER BY tagname, timestamp'))
select emptce.Interval, emptce.TagName, emptce.Value, gasdata.amendedValue from emptce inner join gasdata on emptce.TagName = gasData.tagName COLLATE DATABASE_DEFAULT
and emptce.Interval = DATEADD(DAY, 1, readDate)
我收到以下錯誤:「如果這種說法是公用表表達式,一個XMLNAMESPACES子句或改變跟蹤上下文子句,前面的語句必須以分號結尾。'
我已經嘗試添加一個分號前,但它只是然後錯誤;
你剛纔是不是在用之前添加分號?所以它變成了;與? – 03Usr 2013-05-01 07:57:49
您需要使用分號';'來終止*每個*語句(不要在'with'語句前添加* terminate *字符)。看到這裏:http://sqlblog.com/blogs/aaron_bertrand/archive/2009/09/03/ladies-and-gentlemen-start-your-semi-colons.aspx – 2013-05-01 08:00:09
03Usr - 是的,我也試過後插入語句。仍然沒有工作 – Silentbob 2013-05-01 08:01:55