select a.病人id,
(select 姓名 from 病人信息 x where x.病人id = a.病人id) 姓名,
SUM(银联医保电子凭证) AS 金额,
a.收款时间,
a.操作员姓名
From (
-----------银联医保电子凭证
Select a.病人id,
a.收款时间,
a.操作员姓名,
Sum(A.冲预交) as 银联医保电子凭证
From (select 病人id,
结算方式,
sum(冲预交) as 冲预交,
收款时间,
操作员姓名
from (select 病人id, 结算方式, 冲预交, 收款时间, 操作员姓名
from 病人预交记录
where 记录性质 in (3, 4, 5)
and 结算方式 = '银联医保电子凭证'
union all
select 病人id,
结算方式,
金额 as 冲预交,
收款时间,
操作员姓名
from 病人预交记录
where 记录性质 in (1, 11)
and 结算方式 = '银联医保电子凭证'
and 预交类别 = 1)
group by 结算方式, 收款时间, 操作员姓名, 病人id, 收款时间
) A,
人员收缴记录 B
Where A.操作员姓名 = b.收款员
And A.收款时间 Between b.开始时间 and b.终止时间
and b.作废时间 is null
and b.终止时间 Between /*B0*/
TO_DATE('2024-07-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') /*E0*/
and /*B1*/
TO_DATE('2024-08-07 23:59:59', 'YYYY-MM-DD HH24:MI:SS') /*E1*/
Group by a.操作员姓名, '门诊' || A.结算方式, a.病人id, a.收款时间
having Sum(Nvl(A.冲预交, 0)) <> 0
) a,
人员表 c,
部门人员 d
where a.操作员姓名 = c.姓名
and c.id = d.人员id
--and d.部门id=110
group by a.操作员姓名, a.病人id, a.收款时间
Order By 操作员姓名