我正在尝试加入我创建的两个视图,但是我使用它们的公共字段(cAuditNumber)加入它们。
问题是,一旦我完成了连接,它就不会让我创建视图,因为它不能有两次字段名称cAuditNumber。
cAuditNumber是我应该使用的PK吗?
如何更正此问题并仍加入表格?
CREATE VIEW KFF_Sales_Data_Updated AS
SELECT CustSalesUpdated.*, StkSalesUpdated.*
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber
我收到以下错误:
消息4506,级别16,状态1,过程KFF_Sales_Data_Updated,第2行 每个视图或函数中的列名必须是唯一的。视图或函数“KFF_Sales_Data_Updated”中的列名“cAuditNumber”被多次指定。
答案 0 :(得分:1)
替换您自己的列名而不是ColumnA,B列等,但它应遵循以下格式:
CREATE VIEW KFF_Sales_Data_Updated AS
SELECT CustSalesUpdated.cAuditNumber
,CustSalesUpdated.ColumnA
,CustSalesUpdated.ColumnB
,CustSalesUpdated.ColumnC
,StkSalesUpdated.ColumnA as StkColumnA
,StkSalesUpdated.ColumnB as StkColumnB
,StkSalesUpdated.ColumnC as StkColumnC
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber
您只需使用“as”为重复列添加别名,或者您可以使用它来重命名您想要的任何列。
答案 1 :(得分:0)
CREATE VIEW KFF_Sales_Data_Updated AS
SELECT csu.cAuditNumber cAuditNumber1 , ssu.cAuditNumber cAuditNumber2
FROM CustSalesUpdated csu
INNER JOIN StkSalesUpdated ssu
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber
您可以在两个表的select语句中添加任何其他列,但如果有两个具有相同名称的列,则应为它们指定别名
答案 2 :(得分:0)
一般来说,使用<remote name="my_remote" fetch="ssh://git@bitbucket.org/MY_USERNAME"/>
是一种不好的做法。另一方面,select *
表名和列是一个好习惯。特别是在您的情况下,您的表名称以及相同的列名称(跨两个表)可以使用别名。关于哪个alias
来自哪里,数据库感到困惑。因此,别名派上用场。
cAuditNumber