sql1

a表合同号为 0801000237 的有一条数据,billamount 列数据为24000000
对应的B表有六条记录,查询结果要求,在B表里,只显示一次24000000

select a.contractno,b.billid,

sum(case  when a.billtype='银行承兑汇票' then a.billamount else 0 end),

sum(case  when a.billtype='银行承兑汇票' and b.billid in (select max(billid) from tb_gos_fund_cashfinance where contractno = a.contractno group by contractno  ) then a.billamount else 0 end)
from tb_gos_fund_contract a left join tb_gos_fund_cashfinance b 
on a.contractno=b.contractno and a.financebank=b.financebank
group by a.contractno,b.billid
having a.contractno='0801000237'

 

原文地址:https://www.cnblogs.com/pan11jing/p/1687843.html