【发布时间】:2017-11-13 11:48:10
【问题描述】:
我必须从 3 个表中获取客户贷款总额,这两个表被给予贷款总和,另一个减去支付的金额,并且这些表具有共同的客户 ID。到目前为止,只有当所有表中都存在客户 ID 时,我才能得到结果,但如果它不存在于一个表中,我将不会在结果中得到客户。或者当我锚定到客户时,我得到了 NULL 客户 ID。
SELECT
AS1.C_ID AS [Customer ID],
ISNULL(AS1.OldCustomerLoan, 0) AS [Old Loan],
ISNULL(AS2.NewGivenLoan, 0) AS [New Given Loan],
ISNULL(AS3.LoanPaid, 0) AS [PaidLoanAmount],
(ISNULL(AS1.OldCustomerLoan, 0) +
ISNULL(AS2.NewGivenLoan, 0) -
ISNULL(AS3.LoanPaid,0) ) AS Total
FROM
Customer C
LEFT OUTER JOIN
(SELECT
MOC.C_ID,
SUM(MOC.Quantity) AS OldCustomerLoan
FROM
Money_On_Customer MOC (NOLOCK)
GROUP BY
MOC.C_ID) AS1
ON c.C_Id = AS1.C_Id
LEFT OUTER JOIN
(SELECT
NGL.C_ID
,SUM(NGL.G_Take_Loan) AS NewGivenLoan
FROM
Given_Loan NGL
GROUP BY
NGL.C_ID) AS2
ON c.C_Id = AS2.C_Id
LEFT OUTER JOIN
(SELECT
GLP.C_ID, SUM(GLP.G_P_Loan) AS LoanPaid
FROM
Given_Loan_Paid GLP
GROUP BY
GLP.C_ID ) AS3
ON c.C_Id = AS3.C_Id
这是我的两个结果的图片:
【问题讨论】:
-
嗨。你不清楚。请使用足够的句子、短语、单词、句号和大写字母。请包含文本作为文本而不是链接/图像。请阅读minimal reproducible example 并采取行动。例如给出输入和期望的输出。例如,发布您的问题的最小代码。
-
@philipxy 我已经尽力了
-
显然不是,因为你没有按照我的建议去做。
标签: sql sql-server sql-server-2008