2015-11-03 21 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将它们别名。

你可以在这里找到更多的信息:column_ aliasUsing Table Aliases

在这里: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