繁体   English   中英

为以下场景编写一个 sql 或块生成下面的结果集

[英]write an sql or block generate below result set for below scenario

Table1
Name typeofcontract  amount
Ajay    Account -2000
Ajay    Loan    5000
Ajay    Deposit 11000
Aman    Deposit 12000
Aman    Loan    5000
Aman    Account 2000

需要使用SQL生成结果集如下

Name  noofaccount Noofloan Noofdeposit borrowedamount  availamount  total amount
Ajay   1         1      1              7000            11000        6000

你可以这样做:

SELECT Name,
    SUM(IF(typeofcontract='Account') THEN 1 ELSE 0) NoOfAccount,
    SUM(IF(typeofcontract='Loan') THEN 1 ELSE 0) NoOfLoan,
    SUM(IF(typeofcontract='Deposit') THEN 1 ELSE 0) NoOfDeposit,
    SUM(IF(typeofcontract='Account') THEN amount * -1
        ELSE IF (typeofcontract='Loan') THEN amount) BorrowedAmount,
    SUM(IF(typeofcontract='Deposit') THEN amount) AvailableAmount,
    SUM(IF(typeofcontract='Deposit') THEN amount
        ELSE IF (typeofcontract='Loan') THEN amount * -1) TotalAmount
FROM Table1
GROUP BY Name

检查计算金额的逻辑,因为它在您的示例中不确定。 这应该为您提供有关如何解决此类问题的方法。 还有其他方法可以获得此输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM