SQL连接视图 - 重复字段

时间:2015-06-10 09:11:38

标签: sql-server tsql join view alias

我正在尝试加入两个视图,我尝试将StkSalesUpdated视图下的cAuditNumber字段别名为AuditNumber1,但我仍然收到以下消息:

  

消息4506,级别16,状态1,过程KFF_Sales_Data_Updated,第3行   每个视图或函数中的列名必须是唯一的。列名   ' cAuditNumber'在视图或功能中' KFF_Sales_Data_Updated'是   指定不止一次。

以下是我的SQL语句:

CREATE VIEW KFF_Sales_Data_Updated
AS
SELECT CustSalesUpdated.cAuditNumber
   ,CustSalesUpdated.Account
   ,CustSalesUpdated.cAuditNumber
   ,CustSalesUpdated.Name
   ,StkSalesUpdated.cAuditNumber as AuditNumber1
   ,StkSalesUpdated.Code
   ,StkSalesUpdated.Credit
   ,StkSalesUpdated.Debit
   ,StkSalesUpdated.Description_1
   ,StkSalesUpdated.Id
   ,StkSalesUpdated.ItemGroup
   ,StkSalesUpdated.Quantity
   ,StkSalesUpdated.Reference
   ,StkSalesUpdated.TxDate
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

3 个答案:

答案 0 :(得分:1)

你在第1和第3位有两个c​​auditnumber实例,你需要别名或删除一个。

CREATE VIEW KFF_Sales_Data_Updated
AS
SELECT CustSalesUpdated.cAuditNumber -- HERE
   ,CustSalesUpdated.Account
   ,CustSalesUpdated.cAuditNumber --HERE
   ,CustSalesUpdated.Name
   ,StkSalesUpdated.cAuditNumber as AuditNumber1
   ,StkSalesUpdated.Code
   ,StkSalesUpdated.Credit
   ,StkSalesUpdated.Debit
   ,StkSalesUpdated.Description_1
   ,StkSalesUpdated.Id
   ,StkSalesUpdated.ItemGroup
   ,StkSalesUpdated.Quantity
   ,StkSalesUpdated.Reference
   ,StkSalesUpdated.TxDate
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

答案 1 :(得分:0)

也许这不是因为你的重命名或连接,而是因为你从同一个表中选择它两次? (select语句的前3行)

SELECT CustSalesUpdated.cAuditNumber  
,CustSalesUpdated.Account
,CustSalesUpdated.cAuditNumber

答案 2 :(得分:0)

在SELECT LIST中为多个时间指定了相同的列名。为其他列提供备用名称将解决您的问题。

CREATE VIEW KFF_Sales_Data_Updated
    AS
    SELECT CustSalesUpdated.cAuditNumber
       ,CustSalesUpdated.Account
       ,CustSalesUpdated.cAuditNumber as cAuditNumber_2
       ,CustSalesUpdated.Name
       ,StkSalesUpdated.cAuditNumber as AuditNumber1
       ,StkSalesUpdated.Code
       ,StkSalesUpdated.Credit
       ,StkSalesUpdated.Debit
       ,StkSalesUpdated.Description_1
       ,StkSalesUpdated.Id
       ,StkSalesUpdated.ItemGroup
       ,StkSalesUpdated.Quantity
       ,StkSalesUpdated.Reference
       ,StkSalesUpdated.TxDate
    FROM CustSalesUpdated
    INNER JOIN StkSalesUpdated
    ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber