Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Sql server SQL Server:“(”附近的语法不正确。应为ID,SQL Pivot中引用了\u ID错误_Sql Server_Tsql - Fatal编程技术网

Sql server SQL Server:“(”附近的语法不正确。应为ID,SQL Pivot中引用了\u ID错误

Sql server SQL Server:“(”附近的语法不正确。应为ID,SQL Pivot中引用了\u ID错误,sql-server,tsql,Sql Server,Tsql,我使用了CTE,上一次CTE出现编译错误。在谷歌上搜索了很长时间,但仍然不明白我在代码中犯了什么错误。所以请有人告诉我如何更改代码来修复错误消息 附近语法不正确。应为ID,带引号的\u ID 这个CTE抛出了错误,这是我代码中的最后一个CTE ,Cte2 AS ( SELECT * FROM (SELECT EarningID, Section, LineItem, DisplayInCSM, Type, B

我使用了CTE,上一次CTE出现编译错误。在谷歌上搜索了很长时间,但仍然不明白我在代码中犯了什么错误。所以请有人告诉我如何更改代码来修复错误消息

附近语法不正确。应为ID,带引号的\u ID

这个CTE抛出了错误,这是我代码中的最后一个CTE

,Cte2 AS
(
    SELECT *
    FROM
        (SELECT 
             EarningID, Section, LineItem, DisplayInCSM, Type, 
             Broker, ItemValue, Period, hierarchy
         FROM
             Cte1) t
    PIVOT
        (MAX(ItemValue)
             FOR Broker IN ([5W],[8K],[CL],[DA],[EQ],[FA],[GS],[HM],[HQ],[JY],[KW],[ML],[MS],[MV],[SL],[UA],[WB])
        ) AS P
)
我的完整代码

DECLARE @Columns as VARCHAR(MAX)
DECLARE @Ticker VARCHAR(20), 
@TickerID VARCHAR(20),
@ClientCode VARCHAR(20)

DECLARE @CSM_ID INT
SET @TickerID='ADS'
SET @ClientCode='ADS'

IF OBJECT_ID(N'tempdb..#Brokers') IS NOT NULL
BEGIN
    DROP TABLE #Brokers
END

SELECT DISTINCT @Ticker=Ticker FROM tblTickerMasterId WHERE MasterId=@TickerID
SELECT TOP 1 @CSM_ID=CSM_ID FROM tblCSM_Tuner_Client WHERE TickerID=@TickerID

SELECT * Into #Brokers FROM
(
    Select A.BrokerCode, B.BrokerName                                                  
    From tblClientBroker_Earnings A                                                  
    Join tblBroker B ON SUBSTRING(A.BrokerCode,1,len(A.BrokerCode)-charindex('-',A.BrokerCode))=B.Brokercode                                                       
    Where A.ClientCode=@ClientCode And A.Ticker=@Ticker                                          
    /*AND A.BrokerCode IN (SELECT [DATA] FROM SplitStringToTable(@SelectedBrokers,',') WHERE TRIM([DATA])<>'')*/
) x

SELECT @Columns = COALESCE(@Columns + ', ','') + QUOTENAME(BrokerCode)
FROM
(
    SELECT DISTINCT BrokerCode
    FROM #Brokers where TRIM(BrokerCode) <> ''
) AS B
ORDER BY B.BrokerCode

;WITH DirectReports as 
(
    SELECT      CSM_ID, 
                ID, 
                ParentID, 
                DisplayInCSM, 
                Type,
                FontName,
                FontStyle,
                FontSize,
                UnderLine,
                BGColor,
                LineItemID,
                Presentation,
                BrokerOrientation,
                AnnualFormat,
                CalculationMethod,
                Indent,
                FGColor,
                Box,
                HeadingSubHeading,
                ColOrder,
                @TickerID AS TickerID,
                hierarchy = FORMAT(ID,'0000'), 
                level = 0

    FROM        tblCSM_ModelDetails 
    WHERE       ISNULL(ParentID, 0) = 0
                AND Type<>'BM'
                AND CSM_ID=@CSM_ID

    UNION ALL
    SELECT      e.CSM_ID, 
                e.ID, 
                e.ParentID, 
                e.DisplayInCSM, 
                e.Type,
                e.FontName,
                e.FontStyle,
                e.FontSize,
                e.UnderLine,
                e.BGColor,
                e.LineItemID,
                e.Presentation,
                e.BrokerOrientation,
                e.AnnualFormat,
                e.CalculationMethod,
                e.Indent,
                e.FGColor,
                e.Box,
                e.HeadingSubHeading,
                e.ColOrder,
                @TickerID AS TickerID,
                hierarchy = d.hierarchy + '.' + FORMAT(e.id,'0000'), 
                level = level + 1

    FROM        tblCSM_ModelDetails e
    JOIN        DirectReports d on e.ParentID = d.ID
    WHERE       e.Type<>'BM'
                AND e.CSM_ID=@CSM_ID
)

,Cte1 as 
(
    SELECT AA.EarningID,AA.Section,AA.LineItem,AA.Ticker, r.DisplayInCSM, r.Type,r.hierarchy, AA.Broker, AA.ItemValue, AA.Period,r.ColOrder
    FROM DirectReports r 
    LEFT OUTER JOIN
    (                                                  
        Select b.*,L.ID AS LineItemID,L.TickerID                                                     
        From tblOutputDetl_CSMTuner b                                                  
        INNER JOIN TblLineItemTemplate L 
        ON b.LineItem= L.LineItem 
        WHERE b.Ticker=@Ticker AND L.TickerID=@TickerID                                    
    ) AA
    ON (AA.LineItemID=r.LineItemID 

)
,Cte2 as 
(
  SELECT *
  FROM
    (
        SELECT EarningID,Section,LineItem, DisplayInCSM, Type, Broker, ItemValue, Period,hierarchy
        from Cte1
    ) t
    PIVOT
    (
        MAX(ItemValue)
        FOR Broker IN ([5W],[8K],[CL],[DA],[EQ],[FA],[GS],[HM],[HQ],[JY],[KW],[ML],[MS],[MV],[SL],[UA],[WB])
    ) AS P
)

SELECT * FROM Cte2 Order BY hierarchy

IF OBJECT_ID(N'tempdb..#Brokers') IS NOT NULL
BEGIN
    DROP TABLE #Brokers
END

这里缺少一个右括号

ON (AA.LineItemID=r.LineItemID

非常感谢您的帮助。我一直坚持这个问题。在AA上。LineItemID=r.LineItemID应该在AA上。LineItemID=r.LineItemID。个人宠物皮:它不是;WITH它只是WITH。;是一个语句终止符;它位于批处理中每个语句的末尾。它不是一个开始符,也不只是在需要的语句的开头请正确终止上一条语句。正确终止所有语句。无论如何,不这样做是不可取的,所以现在就开始建立良好的做法。@Larnu谢谢