在 SQL Server 中创建视图
Posted
技术标签:
【中文标题】在 SQL Server 中创建视图【英文标题】:Creating a view in SQL Server 【发布时间】:2014-12-24 08:28:42 【问题描述】:我有 2 张桌子:
Contracts
(ContactID、ContractNo、estimatedCost、CurrencyEstimatedCostID、ContractCost、CurrencyContractCostID)
CurrencyTypes
(CurrencyID、CurrencyTypeName)。
我想用CurrencyTypeName
代替视图中的外键CurrencyEstimatedCostID
和CurrencyContractCostID
查看合同表(在SQL Server 视图中)。
我使用此查询,但它只为CurrencyTypeName
返回一列(我希望CurrencyEstimatedCostID
和CurrencyContractCostID
各有一列)。
SELECT
Contracts.contractID, Contracts.ContractNo, CurrencyTypes.CurrencyType
FROM
Contracts
INNER JOIN
CurrencyTypes ON Contracts.CurrencyEstimatedCostID = CurrencyTypes.CurrencyType
AND Contracts.CurrencyContractCostID = CurrencyTypes.CurrencyType
如何更改查询?
【问题讨论】:
【参考方案1】:不是 100% 确定我是否理解您要执行的操作 - 但如果您有两列都充当 CurrencyTypes
表的外键,则您需要加入两次:
SELECT
c.contractID, c.ContractNo,
EstimatedCostCurrency = ct1.CurrencyType,
ContractCostCurrency = ct2.CurrencyType
FROM
Contracts c
INNER JOIN
CurrencyTypes ct1 ON c.CurrencyEstimatedCostID = ct1.CurrencyID
INNER JOIN
CurrencyTypes ct2 ON c.CurrencyContractCostID = ct2.CurrencyID
【讨论】:
您不应该加入 CurrencyId 而不是 CurrencyType? @TienDinh:是的,很可能 - 最初的问题有这个连接条件,但这真的没有任何意义,你是对的以上是关于在 SQL Server 中创建视图的主要内容,如果未能解决你的问题,请参考以下文章