SQL Cross Join多部分标识符" xxxx"无法受约束

时间:2015-11-05 14:58:55

标签: sql-server tsql user-defined-functions cross-join

我正在使用Cross Joins替换游标,我可以在我们的系统中使用。我有以下这是旧代码和新代码的组合(不是所有的东西?...)

SELECT IWC.[ItemId], LEFT(LEFT(IWC.[Title],100 - LEN(ISNULL(SI.StyleInfo,N''))) + ISNULL(SI.[StyleInfo],'|'),100)
        FROM #custom_ImportWebContent IWC 
        Left JOIN
            (SELECT SL.[ItemId],
                ' | ' +
                CASE
                    WHEN SL.[Level1Name] = 'Color' THEN SL.[Level1Description]
                    WHEN SL.[Level2Name] = 'Color' THEN SL.[Level2Description]
                    WHEN SL.[Level3Name] = 'Color' THEN SL.[Level3Description]
                    WHEN SL.[Level4Name] = 'Color' THEN SL.[Level4Description] END + ' | ' +
                CASE
                    WHEN SL.[Level1Name] = 'Size' THEN SL.[Level1Description]
                    WHEN SL.[Level2Name] = 'Size' THEN SL.[Level2Description]
                    WHEN SL.[Level3Name] = 'Size' THEN SL.[Level3Description]
                    WHEN SL.[Level4Name] = 'Size' THEN SL.[Level4Description] END + ' | ' +
                CASE
                    WHEN SL.[Level1Name] = 'Dimension' THEN SL.[Level1Description]
                    WHEN SL.[Level2Name] = 'Dimension' THEN SL.[Level2Description]
                    WHEN SL.[Level3Name] = 'Dimension' THEN SL.[Level3Description]
                    WHEN SL.[Level4Name] = 'Dimension' THEN SL.[Level4Description] END AS [StyleInfo]
            FROM [StyleLevels] SL) SI ON SI.[ItemId] = IWC.[ItemId]
    CROSS JOIN dbo.GetItems(IWC.[ItemId], IWC.[Title], N'Admin')<-- error-The multi-part identifier "IWC.ItemId" could not be bound. Also for IWC.Title
    ORDER BY IWC.[RowNum]

我超出范围我不是吗?我如何规避这一点并将这些价值传递给TVF?

我是否需要首先从LEFT JOIN创建派生表,然后在派生表上创建CROSS JOIN?

0 个答案:

没有答案