我很难找到一个内部连接语句,它将4个不同表上的公共数据元素组合在一起。
表1:TWSchwabPlan赞助商
表2:TWSchwabBrokerDealerTPA
表3:TWSchwabInvestmentAdvisor
表4:TWFidelityDetailByCorrespondent
所有4个表格的公共字段为CUSIP
。我要做的是从特定CUSIP
(543917108)的所有4个表中添加购买。所有4个表都存在此CUSIP
。结果应显示Fund Name
和总购买量。
附加语句将运行,但结果与手动添加原始数据时的结果不匹配。
SELECT
MARSLite.dbo.TWSchwabPlanSponsor.[Fund Name],
MARSLite.dbo.TWFidelityDetailByCorrespondent.[Purchases ($)]
+ MARSLite.dbo.TWSchwabBrokerDealerTPA.Purchases
+ MARSLite.dbo.TWSchwabInvestmentAdvisor.Purchases
+ MARSLite.dbo.TWSchwabPlanSponsor.Purchases AS 'Purchases'
FROM MARSLite.dbo.TWFidelityDetailByCorrespondent
INNER JOIN MARSLite.dbo.TWSchwabBrokerDealerTPA
ON MARSLite.dbo.TWFidelityDetailByCorrespondent.CUSIP =
MARSLite.dbo.TWSchwabBrokerDealerTPA.CUSIP
INNER JOIN MARSLite.dbo.TWSchwabInvestmentAdvisor
ON MARSLite.dbo.TWSchwabBrokerDealerTPA.CUSIP =
MARSLite.dbo.TWSchwabInvestmentAdvisor.CUSIP
INNER JOIN MARSLite.dbo.TWSchwabPlanSponsor
ON MARSLite.dbo.TWSchwabBrokerDealerTPA.CUSIP =
MARSLite.dbo.TWSchwabPlanSponsor.CUSIP
WHERE (MARSLite.dbo.TWSchwabBrokerDealerTPA.CUSIP = '543917108')
GROUP BY
MARSLite.dbo.TWSchwabBrokerDealerTPA.CUSIP,
MARSLite.dbo.TWSchwabPlanSponsor.[Fund Name],
MARSLite.dbo.TWFidelityDetailByCorrespondent.[Purchases ($)],
MARSLite.dbo.TWSchwabBrokerDealerTPA.Purchases,
MARSLite.dbo.TWSchwabInvestmentAdvisor.Purchases,
MARSLite.dbo.TWSchwabPlanSponsor.Purchases
答案 0 :(得分:0)
谢谢大家,我使用下面的代码让它工作。
选择[CUSIP],[基金名称],总和(购买)作为'购买',总和([结束资产余额])作为'资产',总和([赎回])作为'赎回' FROM [MARSLite]。[dbo]。[TWSchwabBrokerDealerTPA]
分组[基金名称],[CUSIP]
UNION 选择[CUSIP],[基金名称],总和(购买)作为'购买',总和([结束资产余额])作为'资产',总和([赎回])作为'赎回' 来自[MARSLite]。[dbo]。[TWSchwabInvestmentAdvisor]
分组[基金名称],[CUSIP]
UNION 选择[CUSIP],[基金名称],总和(购买)作为'购买',总和([结束余额])作为'资产',总和([赎回])作为'赎回' 来自[MARSLite]。[dbo]。[TWSchwabPlanSponsor]
分组[基金名称],[CUSIP]
UNION
SELECT [CUSIP],[Fund Name],Sum([Purchases($)])作为'Purchases',Sum([Assets($)])作为'Assets',Sum([Redemptions($)])作为'救赎' 来自[MARSLite]。[dbo]。[TWFidelityDetailByCorrespondent]
分组[基金名称],[CUSIP]
UNION SELECT [CUSIP],[Fund Name],Sum([Purchases($)])作为'Purchases',Sum([Assets($)])作为'Assets',Sum([Redemptions($)])作为'Redemptions “ FROM [MARSLite]。[dbo]。[TWFidelityDetailByCusip]
分组[基金名称],[CUSIP]
UNION
SELECT [CUSIP],[Fund Name],Sum([Purchases($)])作为'Purchases',Sum([Assets($)])作为'Assets',Sum([Redemptions($)])作为'救赎' FROM [MARSLite]。[dbo]。[TWFidelityDetailByIWSClient]
分组[基金名称],[CUSIP]