create or replace view V_QSE_BEENDET as
select	p."VpNr" as "ParterVpNr",p."PartnerName",qse.*,
		(CASE WHEN qse."Leistungsart"='HB' THEN coalesce(qse."HBDatumBehandlungsbeginnLE",coalesce(qse."IndikationDatumLE",coalesce(qse."IOTNDatumLE",to_date('20000101','YYYYMMDD'))))
			  WHEN qse."Leistungsart"='IB' THEN coalesce(qse."IndikationDatumLE",coalesce(qse."IOTNDatumLE",to_date('20170101','YYYYMMDD')))
			  WHEN qse."Leistungsart"='IF' THEN coalesce(qse."IndikationDatumLE",coalesce(qse."IOTNDatumLE",to_date('20170101','YYYYMMDD')))
			  ELSE to_date('20000102','YYYYMMDD') END) as "Beginndatum",
		(CASE WHEN qse."Behandlungsabbruch" is not null THEN qse."Behandlungsabbruch" 
		 ELSE (CASE WHEN qse."Leistungsart"='HB' THEN qse."HBDatumBehandlungsendeLE"
		            WHEN qse."Leistungsart"='IB' THEN qse."IBBehandlungsendeLE"
		            WHEN qse."Leistungsart"='IF' THEN null
		            ELSE qse."HBDatumBehandlungsendeLE" END)
		 END) as "Endedatum",
		rank() OVER (PARTITION BY qse."VpNr" 
					 ORDER BY (CASE WHEN qse."Behandlungsabbruch" is not null THEN qse."Behandlungsabbruch" 
		                            WHEN qse."IBBehandlungsendeLE" is not null THEN qse."IBBehandlungsendeLE"
		                            ELSE qse."HBDatumBehandlungsendeLE" END) DESC) as "Rang",
		rank() OVER (PARTITION BY qse."VpNr",qse."Leistungsart" 
					 ORDER BY (CASE WHEN qse."Behandlungsabbruch" is not null THEN qse."Behandlungsabbruch" 
		                            WHEN qse."IBBehandlungsendeLE" is not null THEN qse."IBBehandlungsendeLE"
		                            ELSE qse."HBDatumBehandlungsendeLE" END) DESC) as "LeistungsartRang",
		(CASE WHEN qse."Behandlungsabbruch" is not null THEN 'ABBRUCH' ELSE '' END) as "Abbruch",
		(CASE WHEN qse."PARAnfangswert" is null THEN null        
		      WHEN qse."PARAnfangswert"=0 THEN null
			  ELSE (((qse."PARAnfangswert"-qse."PAREndwert")+0.0)/(0.0+qse."PARAnfangswert")*100.0) END) as "PARVerbesserungProzent",
		SUBSTR(qse."IOTNLE",1,1) as "IOTNGradLE",
        SUBSTR(qse."IOTNQS",1,1) as "IOTNGradQS"
  from "QsEintrag" qse
    left outer join "Partner" p on p."VpNr"=qse."VpNr"  
 where qse."StornoDatum" is null and         
       ((qse."Leistungsart"='HB' and 
	   (qse."HBDatumBehandlungsendeLE" is not null or qse."Behandlungsabbruch" is not null)) or
	   (qse."Leistungsart"='IB' and (qse."IBBehandlungsendeLE" is not null or qse."Behandlungsabbruch" is not null)) or
	   (qse."Leistungsart"='IF' and (qse."Behandlungsabbruch" is not null)))
 order by p."VpNr" asc, qse."HBDatumBehandlungsendeLE" desc