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