2015-11-03 4 views
4

У меня есть этот код:SQL Server 08 - стержень - Изменение Имя столбца

SELECT * FROM(
    SELECT A.Id, 
      B.Note, 
      C.Value, 
      C.Ammount 
    FROM Table1 A 
    LEFT JOIN Table2 B ON A.Id = B.Id 
    LEFT JOIN Table3 C ON B.Id = c.Id AND B.Name = C.Name 
    INNER JOIN(
     SELECT Name, LName, AxValue, Code, Number 
     FROM Table Ax 
     Where (Code = 80 AND Name = 'Bo') AS D ON D.AxValue = C.Value) 
)AS Node1 
PIVOT(
    SUM(Ammount) 
    FOR Value IN ([1], [2]) 
)AS Node2 

и результат что-то вроде этого

Id Note 1 2 
-------------------- 
01 ok 500 100 

Есть ли способ, чтобы переименовать последние два столбца с имена (Ex1, Ex2) вместо чисел (1,2)?

ответ

1

Заменить:

SELECT * FROM(
... 

По

SELECT Id, Note, [1] as Ex1, [2] as Ex2 FROM(
... 

Это всегда лучше заменить * столбцами вам нужно. Вы можете использовать их с помощью as.

Вы можете найти более подробную информацию здесь: Using Table Aliases

А вот под column_ alias: SELECT Clause

0

Попробуйте это:

SELECT Id, Note, [1] as Ex1, [2] as Ex2 FROM(
    SELECT A.Id, 
      B.Note, 
      C.Value, 
      C.Ammount 
    FROM Table1 A 
    LEFT JOIN Table2 B ON A.Id = B.Id 
    LEFT JOIN Table3 C ON B.Id = c.Id AND B.Name = C.Name 
    INNER JOIN(
     SELECT Name, LName, AxValue, Code, Number 
     FROM Table Ax 
     Where (Code = 80 AND Name = 'Bo') AS D ON D.AxValue = C.Value) 
)AS Node1 
PIVOT(
    SUM(Ammount) 
    FOR Value IN ([1], [2]) 
)AS Node2 

Вместо использования * вам нужно указать имя вашей колонки.

+0

Когда я запускаю это, я получаю ошибку: идентификатор многочастности «A.ID» не может быть связан. (и так для остальных алиасий) – SpB