现有列上的列名无效

时间:2015-10-13 00:40:17

标签: sql sql-server

我一直试图解决这个问题,但似乎无法弄清楚发生了什么。我不断收到invalid column name 'Section_1'的错误消息。我知道Section_1存在,但似乎无法追查导致此错误的问题。这是我的代码的一部分,如果需要更多,我可以添加它:

编辑:

 DECLARE @NewCols AS NVARCHAR(MAX);
DECLARE @qry AS NVARCHAR(MAX);

SELECT @NewCols = STUFF((SELECT distinct
                        ',' +
                        QUOTENAME([Section_1])
                FROM [dbo].[Raw_Data_Import]
            FOR XML PATH(''), TYPE 
            ).value('.', 'NVARCHAR(MAX)')
        ,1,1,'')

SET @qry =
'INSERT INTO [DBO].ATT_tbl_AS (

    Bill_Date
    ,MTN
    ,User_Name
    ,Adjustments_To_Previous_Balance
    ,FAN_Invoice_Previous_Balance
    ,FAN_Invoice_Past_Due
    ,FAN_Invoice_Amount_Due
    ,FAN_Invoice_Total_Current_Charges
    ,FAN_Invoice_Total_Payments

    )


Select

    Query_Selection.[ Bill_Date]
    ,Query_Selection.[Wireless Number]
    ,Query_Selection.[User Name] 
    ,Query_Selection.[Adjustments To Previous Balance]
    ,Query_Selection.[Previous Balance]
    ,Query_Selection.[Remaining (Past Due) Balance]
    ,Query_Selection.[TOTAL AMOUNT DUE]
    ,Query_Selection.[Total Current Charges]
    ,Query_Selection.[Total Payments]


    FROM( 



        Select  [Bill_Date],  [Wireless Number], [User Name],' + @NewCols +'
    From 
        (
            Select 
                  [Bill_Date], [Wireless Number], [User Name],  [Amount] as SumOfAmount
                 From [dbo].[Raw_Data_Import]
                 Where [dbo].[Raw_Data_Import].[Section ID] = ''IRA'' AND [dbo].[Raw_Data_Import].[Section_1] IS Not Null
                 ) t
                 PIVOT 
                 (
                 SUM(SumOfAmount)
                    FOR [Section_1] IN (' + @NewCols + ')
                    ) p 


    ) as Query_Selection'


    execute (@qry)

编辑:也添加了打印视图。

 DECLARE @NewCols AS NVARCHAR(MAX);
    DECLARE @qry AS NVARCHAR(MAX);

    SELECT @NewCols = STUFF((SELECT distinct
                            ',' +
                            QUOTENAME([Section_1])
                    FROM [dbo].[Raw_Data_Import]
                FOR XML PATH(''), TYPE 
                ).value('.', 'NVARCHAR(MAX)')
            ,1,1,'')

    SET @qry =
    'INSERT INTO [DBO].ATT_tbl_AS (

        Bill_Date
        ,MTN
        ,User_Name
        ,Adjustments_To_Previous_Balance
        ,FAN_Invoice_Previous_Balance
        ,FAN_Invoice_Past_Due
        ,FAN_Invoice_Amount_Due
        ,FAN_Invoice_Total_Current_Charges
        ,FAN_Invoice_Total_Payments

        )


    Select

        Query_Selection.[ Bill_Date]
        ,Query_Selection.[Wireless Number]
        ,Query_Selection.[User Name] 
        ,Query_Selection.[Adjustments To Previous Balance]
        ,Query_Selection.[Previous Balance]
        ,Query_Selection.[Remaining (Past Due) Balance]
        ,Query_Selection.[TOTAL AMOUNT DUE]
        ,Query_Selection.[Total Current Charges]
        ,Query_Selection.[Total Payments]


        FROM( 



            Select  [Bill_Date],  [Wireless Number], [User Name],[Adjustments to Previous Balance],[Previous Balance],[Remaining (Past Due) Balance],[TOTAL AMOUNT DUE],[Total Current Charges],[Total Payments]
        From 
            (
                Select 
                      [Bill_Date], [Wireless Number], [User Name],  [Amount] as SumOfAmount
                     From [dbo].[Raw_Data_Import]
                     Where [dbo].[Raw_Data_Import].[Section ID] = ''IRA'' AND [dbo].[Raw_Data_Import].[Section_1] IS Not Null
                     ) t
                     PIVOT 
                     (
                     SUM(SumOfAmount)
                        FOR [Section_1] IN ([Adjustments to Previous Balance],[Previous Balance],[Remaining (Past Due) Balance],[TOTAL AMOUNT DUE],[Total Current Charges],[Total Payments])
                        ) p 


        ) as Query_Selection'


        execute (@qry)

FOR [Section_1] IN (' + @NewCols + ')是抛出错误的部分,但不确定原因。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您未在Section_1的选择列表中列出t。我认为这是你的问题。