Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pivot中的SQL转换_Sql_Sql Server_View_Pivot - Fatal编程技术网

Pivot中的SQL转换

Pivot中的SQL转换,sql,sql-server,view,pivot,Sql,Sql Server,View,Pivot,我有一个大的长视图查询,我正试图创建如下: CREATE VIEW [iFix].[UF90NIRHistorian] AS SELECT PARSENAME(TagName,2) As [TagName], CONVERT(DATETIME,[TimeStamp]) As [TimeStamp], CONVERT(FLOAT,Value) As [Value] FROM

我有一个大的长视图查询,我正试图创建如下:

CREATE VIEW [iFix].[UF90NIRHistorian]
    AS
    SELECT 
        PARSENAME(TagName,2)            As [TagName],
        CONVERT(DATETIME,[TimeStamp])   As [TimeStamp], 
        CONVERT(FLOAT,Value)            As [Value]
    FROM OPENQUERY(IFIX_HISTORIAN, 
    '
    SET
        StartTime={ts ''2014-02-06 00:00:00''},
        SamplingMode=Calculated,
        CalculationMode=Average,
        IntervalMilliseconds=1Hour,
        RowCount=0
    SELECT * FROM ihRawData WHERE 
        TagName LIKE *.UF90n_TS_SP.F_CV OR
        TagName LIKE *.UF90n_DMB_SP.F_CV OR
        TagName LIKE *.SW_U680_01.F_CV OR
        TagName LIKE *.PD_U680_01.F_CV OR
        TagName LIKE *.FW_U680_01.F_CV
    ')
    PIVOT(
        AVG(CONVERT(FLOAT,Value) As Value)
        FOR [TagName] In (
            [UF90n_DMB_SP],
            [UF90N_TS_SP],
            [SW_U680_01],
            [PD_U680_01],
            [FW_U680_01])
        ) AS p 

当我试图将Value列从字符串转换为float时,PIVOT命令后面的行出现语法错误。如果我创建没有轴的视图,然后将其结果作为第二个视图轴,则此错误将消失。是否有任何方法可以将其保留为一个视图并修复该语法错误?

如果要在select中转换值字段,那么为什么需要在pivot语句中再次转换它?我在我的一个表中尝试了一个类似的pivot语句,将所选值转换为另一种类型后,再以它为轴心,效果很好。也许我遗漏了一些东西,但似乎不需要您的第二次转换。

您真的可以发布错误消息吗?您不能在该位置应用转换AVGCONVERTFLOAT,Value As Value。您必须在应用平均值之前转换数据。错误消息是:关键字“convert”附近的语法不正确。如果不进行转换,我会收到一个错误,说我无法平均varchar。我还尝试在select语句中重命名该列,但出现了一个错误,说明它找不到该列。