SQL连接和子查询

SQL连接和子查询,sql,Sql,下面是两个表客户信息和第二个客户及其贷款和还款我想加入这两个表并检索图片中的预期结果,请注意,在第二个表中,一个客户可以有多笔贷款,他/她可以分几次偿还。在第二个表中,他/她分多行保存了贷款,我希望加入这两个表,并检索仍欠公司的客户 为此,我发现预期结果是一个很好的解决方案,但无法检索预期结果 如果你有一个很好的解决方案,而不是预期的结果,请分享 例如:- 我尝试了下面的查询,但它不起作用,因为客户id编号1支付了三次贷款,当它显示树倍用途时,它也显示了三次贷款总额 SELECT DISTIN

下面是两个表客户信息和第二个客户及其贷款和还款我想加入这两个表并检索图片中的预期结果,请注意,在第二个表中,一个客户可以有多笔贷款,他/她可以分几次偿还。在第二个表中,他/她分多行保存了贷款,我希望加入这两个表,并检索仍欠公司的客户

为此,我发现预期结果是一个很好的解决方案,但无法检索预期结果

如果你有一个很好的解决方案,而不是预期的结果,请分享

例如:-

我尝试了下面的查询,但它不起作用,因为客户id编号1支付了三次贷款,当它显示树倍用途时,它也显示了三次贷款总额

SELECT DISTINCT 
CUSTOMER_AIB_INFO_TABLE.ID, 
CUSTOMER_AIB_INFO_TABLE.NAME,
( 
    SELECT SUM (CUSTOMER_AIB_LOAN_TABLE.LOAN) AS "Total Loan" 
    FROM CUSTOMER_AIB_LOAN_TABLE 
    WHERE CUSTOMER_AIB_INFO_TABLE.ID = CUSTOMER_AIB_LOAN_TABLE.FK_ID
) AS "Loan", 

( 
    SELECT SUM (CUSTOMER_AIB_LOAN_TABLE.REPAYMENT) FROM CUSTOMER_AIB_LOAN_TABLE 
    WHERE CUSTOMER_AIB_INFO_TABLE.ID = CUSTOMER_AIB_LOAN_TABLE.FK_ID
) AS Repayment , 

CUSTOMER_AIB_LOAN_TABLE.PURPOSE 
FROM CUSTOMER_AIB_INFO_TABLE 
INNER JOIN CUSTOMER_AIB_LOAN_TABLE 
ON CUSTOMER_AIB_INFO_TABLE.ID = CUSTOMER_AIB_LOAN_TABLE.FK_ID

可以对select表group by id使用内部联接,而不是子查询

SELECT DISTINCT 
    CUSTOMER_AIB_INFO_TABLE.ID, 
    CUSTOMER_AIB_INFO_TABLE.NAME,
    T.Total_Loan AS "Loan",
    T.Total_Rep AS Repayment, 
    CUSTOMER_AIB_LOAN_TABLE.PURPOSE 
FROM CUSTOMER_AIB_INFO_TABLE 
INNER JOIN (

  SELECT CUSTOMER_AIB_LOAN_TABLE.FK_ID as FK_ID,
            SUM (CUSTOMER_AIB_LOAN_TABLE.LOAN) AS Total_Loan 
          ,  SUM (CUSTOMER_AIB_LOAN_TABLE.REPAYMENT) AS Total_Rep 
      FROM CUSTOMER_AIB_LOAN_TABLE 
      GROUP BY CUSTOMER_AIB_LOAN_TABLE.ID

      ) T on t.FK_ID = CUSTOMER_AIB_INFO_TABLE.ID

请添加您迄今为止为实现此结果所做的尝试?在这里添加您的查询。谢谢Dhruv Jadia刚刚添加了ankitsuthar@AbdulHay你用的是哪种关系型数据库?这种表结构会因为糟糕的设计而让人头痛不已。为什么要将贷款和付款存储在同一个表中?另外,FK_ID应该是CUSTOMER_ID。我假设FK代表外键,它是高度非特定的。你需要把贷款分成一张单独的表格。如果一个客户有两笔金额相同的贷款,这个结构就会崩溃。让我试试这个@scaisedge