这是第一个表:
销售额:
Restaurant Teliabagh 80000
Restaurant Teliabagh 20000
SHRI BALAJI 50000
Bhola ji 50000
Ajay 50000
第二表:
现金:
Restaurant Teliabagh 20000
Restaurant Teliabagh 20000
Ajay 25000
我能够为一方获得money_leftAJAY只有金额而不是他的名字
这是命令:
SELECT (select sum(totalamount) from acc.sales where Partyname='Ajay')-(select sum(Amountrecevied) from acc.cash where Party_name='Ajay') as money_left;
并作为输出
money_left
25000
但我的问题是,在这里,我想在现金表中的销售表形式(收到的金额(中显示ALL Partyname with Money_left减去(totalamount(后的Partyname。
如果它将聚会名称和金额减去后显示为NUll,那就没问题了。
SELECT Partyname, sales.totalamount - COALESCE(cash.totalamount, 0) as money_left
FROM ( SELECT Partyname, SUM(totalamount) totalamount
FROM acc.sales
GROUP BY 1 ) sales
LEFT JOIN ( SELECT Partyname, SUM(totalamount) totalamount
FROM acc.cash
GROUP BY 1 ) cash USING (Partyname);
如果存在cash
中存在但在sales
中不存在的Partyname
值,则具有UNION DISTINCT的附加子查询,其收集所有所需的Partyname
值作为基础。