SQL Server%的列数多于列列表中指定的列数

时间:2014-08-06 11:03:06

标签: sql sql-server sql-server-2008

我收到此错误:

  

Msg 8158,Level 16,State 1,Line 32
  ' B'列数多于列列表中指定的列数。

我有一个存储过程,其中包含以下命令:

SELECT 
    A.Id,
    A.Description,
    B.StartDate
FROM 
    MyATable A
INNER JOIN 
    (SELECT 
        MAX(MyDate) AS StartDate, A_Id, X_Id, Y_Id
     FROM MyBTable
     WHERE ActionId = 25
     GROUP BY A_Id, X_Id, Y_Id) B ON A.Id = B.A_Id

我错了什么?

1 个答案:

答案 0 :(得分:0)

它在存储过程中。

我创建了一个临时表(并在结尾=>删除它)

然后我插入了内连接中的select语句

CREATE TABLE #tempTable (StartDate, A_Id)

INSERT INTO #tempTable (StartDate, A_Id) SELECT MAX(MyDate), A_Id GROUP BY A_Id FROM MyBTable

然后将语句改为:

SELECT 
  A.Id,
  A.Description,
  B.StartDate
FROM MyATable A
    INNER JOIN #tempTable B ON A.Id = B.A_Id

这更容易。