Sql server 2008 在SQL server中的两个表之间映射多列

Sql server 2008 在SQL server中的两个表之间映射多列,sql-server-2008,Sql Server 2008,我有两张桌子 [付款方式] [供应商工具输入] 表1-付款方式包含以下信息 ComCd | AccountGroup | BankCountry | Currency | VARSPaymentMethod | SAPPaymentMethod _____________________________________________________________________________________ SG00 ABC SGD

我有两张桌子

[付款方式] [供应商工具输入] 表1-付款方式包含以下信息

ComCd | AccountGroup | BankCountry | Currency | VARSPaymentMethod | SAPPaymentMethod
_____________________________________________________________________________________
SG00    ABC                         SGD         Check                  C
SG00    ABC                         SGD         Return Check           E
SG00    ABC                         Not SGD     Check                  D
SG00    XYZ                         SGD         Check                  C
SG00    XYZ                         SGD         Return Check           E
SG00    XYZ                         Not SGD     Check                  D 
VendorNo | AccountGroup | BankCountry  | ComCode | PaymentMethod | Payment Currency
__________________________________________________________________________________
TEST1      ABC                            SG00      Check           SGD
TEST2      ABC                            SG00      Return Check    SGD
TEST4      ABC                            SG00      Check           AHP
TEST6      XYZ                            SG00      Check           SGD
TEST7      XYZ                            SG00      Return Check    SGD
TEST9      XYZ                            SG00      Check           AHP
表2-[供应商工具输入]包含以下信息

ComCd | AccountGroup | BankCountry | Currency | VARSPaymentMethod | SAPPaymentMethod
_____________________________________________________________________________________
SG00    ABC                         SGD         Check                  C
SG00    ABC                         SGD         Return Check           E
SG00    ABC                         Not SGD     Check                  D
SG00    XYZ                         SGD         Check                  C
SG00    XYZ                         SGD         Return Check           E
SG00    XYZ                         Not SGD     Check                  D 
VendorNo | AccountGroup | BankCountry  | ComCode | PaymentMethod | Payment Currency
__________________________________________________________________________________
TEST1      ABC                            SG00      Check           SGD
TEST2      ABC                            SG00      Return Check    SGD
TEST4      ABC                            SG00      Check           AHP
TEST6      XYZ                            SG00      Check           SGD
TEST7      XYZ                            SG00      Return Check    SGD
TEST9      XYZ                            SG00      Check           AHP
预期产出-

这是我写的问题,但它似乎不起作用-

SELECT A.[SAPPaymentMethod] ,B.[VendorNo],B.[ComCode],B.PaymentMethod,A.Currency,B.[Payment Currency] FROM [master].[dbo].[PaymentMethod] A, [master].[dbo].[Vendor Tool Input] B Where  B.ComCode
=A.Comcd and B.AccountGroup=A.AccountGroup and B.BankCountry is null and B.[Payment Currency]=A.Currency and B.PaymentMethod=A.VARSPaymentMethod 
查看结果
您好,Sarath,您还没有考虑货币字段和银行国家进行映射。如果您在join中使用CurrencyField,那么您将只得到TEST1、TEST2、TEST6、TEST7。对于PaymentMethod表中ABC的第三个条目,CurrencyField的值不是SGD,而VendorToolInput表中ABC的第三个条目,CurrencyField的值是AHP。我们怎么能把这些结合起来呢@Baimz这就是挑战Sarath,如果货币不是新加坡元,这意味着它可以是AHP、INR、USD等,我们必须在货币不匹配的地方得到测试4和测试9。在where子句中给出和CTE1.Currency=CTE2。[支付货币]或CTE1.Currency CTE2。[支付货币]@拜姆兹