Mysql 为以下场景编写sql或块生成以下结果集

Mysql 为以下场景编写sql或块生成以下结果集,mysql,Mysql,需要使用SQL生成一个结果集,如下所示 Table1 Name typeofcontract amount Ajay Account -2000 Ajay Loan 5000 Ajay Deposit 11000 Aman Deposit 12000 Aman Loan 5000 Aman Account 2000 您可以这样做: Name noofaccount Noofloan Noofdeposit borrowedamount av

需要使用SQL生成一个结果集,如下所示

Table1
Name typeofcontract  amount
Ajay    Account -2000
Ajay    Loan    5000
Ajay    Deposit 11000
Aman    Deposit 12000
Aman    Loan    5000
Aman    Account 2000
您可以这样做:

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

检查计算出的金额的逻辑,因为根据您的示例,它是不确定的。这将为您提供一种解决此类问题的方法。还有其他方法可以获得此输出

欢迎来到堆栈溢出。首先,请有礼貌地问一个问题。不要将问题结构化为需求。您尝试了什么SQL?最好是从你的尝试中发布一个片段,而不是要求社区提供一个很好的解决方案。干杯
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