【发布时间】:2023-03-17 19:27:01
【问题描述】:
我有 3 张桌子。
表 1:ContractMain
ContractNo SDValue Value CityId AreaCode
C0001 840888 18482 CY00004 AR0001
C0002 133500 35000 CY00004 AR0001
C0003 NULL 4200 CY00004 AR0001
C0004 73440 7400 CY00004 AR0001
C0005 73440 7400 CY00005 AR0002
表 2:合同详情
ContractNo Code TxPr Amt
C0001 1 25 2102220.50
C0001 2 25 2102220.50
C0001 3 25 2102220.50
C0002 1 25 333750.00
C0002 2 25 333750.00
C0003 1 25 333750.00
C0003 2 25 333750.00
表 3:城市
CityID CName
CY00004 AMR
CY00005 EEE
CY00006 TRE
CY00008 WSE
Table4:区域
AreaCode AName
AR0001 COK
AR0002 TCR
AR0003 EKM
AR0004 RTT
我的预期结果是
ContractNo SDValue Value CityId AreaCode Amt CName AName
我写的脚本
select A.*,B.Amt,C.CName,D.AName
from ContractMain A INNER JOIN ContractDetails B on A.ContractNo=B.ContractNo
Inner join City C on C.CityId=A.CityId
Inner join Area D on D.AreaCode=A.AreaCode
在这里,我得到了针对 ContractNo 的重复值,因为在表 B 中,我们为列 Code 获得了不同的值
我需要为 ContractNo 获取不同的值。实现这一目标的最佳方法是什么
【问题讨论】:
标签: sql sql-server join inner-join