还有未收款的项目SQL怎么写
有两个表,service和pay。
service有一个“TotalMoney”字段,表示该项目的应收费用,另外还有一个ServiceID为关键字段,ServiceName为服务项目名称
pay中有一个收款字段“PayedMoney”,表示已经收的费用。
因为一个项目可能要分好几次收款,所以service和pay是一对多的关系。
现在想查找到数据库里面所有TotalMoney> Sum(PayedMoney)的记录,不知道该怎么写,所以求助,谢谢大家。
select结果要包括这几个信息 ServiceID,ServiceName,TotalMoney,已收的款,未收的款
[解决办法]
select a.serviceid,a.servicename,a.totalmoney,isnull(b.paymoney,0)paymoney
from service a
left join
(select serviceid,sum(paymoney) as paymoney
from pay group by serviceid)b
on a.serviceid=b.serviceid
[解决办法]
有两个表,service和pay。
service有一个“TotalMoney”字段,表示该项目的应收费用,另外还有一个ServiceID为关键字段,ServiceName为服务项目名称
pay中有一个收款字段“PayedMoney”,表示已经收的费用。
因为一个项目可能要分好几次收款,所以service和pay是一对多的关系。
现在想查找到数据库里面所有TotalMoney> Sum(PayedMoney)的记录,不知道该怎么写,所以求助,谢谢大家。
select结果要包括这几个信息 ServiceID,ServiceName,TotalMoney,已收的款,未收的款
select s.ServiceID, s.ServiceName,s.TotalMoney,
sum(isnull(p.PayedMoney,0)) as '已收的款 ',
s.TotalMoney -sum(isnull(p.PayedMoney,0)) as '未收的款 '
from service s, pay p
where s.ServiceID *= p.ServiceID
group by s.ServiceID,s.ServiceName,s.TotalMoney
having s.TotalMoney > sum(isnull(p.PayedMoney,0))