在单个记录中合并多行时出错Msg 208

时间:2018-01-03 03:27:32

标签: sql sql-server merge

SQL Server中的查询获取大约30个包含15列的记录。我想合并它并将其转换为单个记录中 30 * 15 = 450列的一条记录。

以下是示例代码:

DECLARE @SqlText NVARCHAR(MAX) = 'select * from ((SELECT ''abc'' AS ID,  
                            SUBSTRING(col1,0,10) ID_Mark,
                            CASE 
                              WHEN (UPPER(SUBSTRING(REPLACE(col2, ''0123456789'', NULL ), 0, 2 ))=''E-'')
                                   THEN SUBSTRING(REPLACE(col2, ''0123456789'', NULL ), 3, 4 ) .......
                                  group by ID, ID_Mark, col1, col2, .....)) PE'
SELECT @SqlText  = @SqlText  + ' INNER JOIN PE'+ CONVERT(VARCHAR, ID) +'.ID_Mark =  ' + CONVERT(VARCHAR, ID_Mark) 
FROM PE 
order by ID_Mark

SET @SqlText  = @SqlText  
EXEC (@SqlText)

以下是样本数据 -

ID    col1    col2  .......
1001  STEVE   CAJ   .......
1002  SHAUN   REZ   .......
1003  HASH    FAS   .......

我想将所有这些数据合并到一个记录中,如下所示 -

1_ID   1_col1  1_col2  ..  2_ID  2_col1  2_col2  ..  3_ID  3_col1  3_col2 ...
1001   STEVE   CAJ     ..  1002  SHAUN   REZ     ..  1003  HASH    FAS    ...

当我执行此代码时,出现错误

  消息208   无效的对象名称' PE'。

其中PE是查询的表别名。如何解决此类问题?

0 个答案:

没有答案