Msg 8159, Level 16, State 1, Line 2
‘%.*ls’ has fewer columns than were specified in the column list.
This error message appears when you derive a table and specify fewer column aliases as columns are contained in the SELECT list.
The T-SQL statement can be parsed, but causes the error at runtime.
Errors of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. You must specify (either explicitly or implicitly) a column name of each column of a derived table.
All versions of SQL Server.
(SELECT CustomerID, MAX(OrderDate)
GROUP BY CustomerID) AS x(CustomerID, OrderDate, OrderDate)
In the above example we try to derive a table x in which we specify three column alias CustomerID. Because x has less than three columns, the error is raised.