不知道你那是什么数据库,我的是oracle,有的数据库不支持is null写法,可以换成你那个数据库的为空判断:
select s.customerno,s.itemno,s.money,s.项目号,p.收款条件,p.一次收款比率*100||'%' 一次收款比率,s.money*p.一次收款比率 第一次收款,p.二次收款比率*100||'%' 二次收款比率,s.money*p.二次收款比率 第二次收款
from sm_orders s,PAYMENTS p
where s.customerno=p.customerno
and s.项目号=p.项目号
union all
select s.customerno,s.itemno,s.money,s.项目号,p.收款条件,p.一次收款比率*100||'%' 一次收款比率,s.money*p.一次收款比率 第一次收款,p.二次收款比率*100||'%' 二次收款比率,s.money*p.二次收款比率 第二次收款
from sm_orders s,PAYMENTS p
where s.customerno=p.customerno
and p.项目号 is null
and not exists(
select 1 from PAYMENTS p
where s.项目号=p.项目号
);