1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| DECLARE CURSOR c IS select * from haplo where notest IN('KCAS', 'MBCAS', 'SHGC', 'MMTCP', 'MMTP', 'MMH3', 'HMTP', 'HMH3', 'HMTCP', 'MSHGC') and nunati = '0114035148'
order by (case notest when 'KCAS' then 0
when 'SHGC' then 1
when 'MSHGC' then 2
when 'MMTCP' then 3
when 'MMTP' then 4
when 'MMH3' then 5
when 'HMTP' then 6
when 'HMH3' then 7
when 'HMTCP' then 8
when 'MBCAS' then 9
end);
BEGIN
DECLARE
varRESULTEST varchar2(1000) := NULL;
varNOTEST varchar2(1000) := NULL;
chainefinale varchar2(1000) := NULL;
BEGIN
FOR r in c
LOOP
--Affectation des valeurs pour regrouper les tests.
varNOTEST := CASE WHEN r.NOTEST = 'KCAS' THEN 'KCAS'
WHEN r.NOTEST = 'MBCAS' THEN 'MBCAS'
WHEN r.NOTEST IN ('MSHGC', 'SHGC') THEN 'SHGC'
WHEN r.NOTEST IN ('MMTCP', 'MMTP', 'MMH3', 'HMTP', 'HMH3', 'HMTCP') THEN 'MTP'
END;
--Cas 'SHGC'
varRESULTEST := CASE WHEN (r.NOTEST = 'MSHGC' OR r.NOTEST = 'shgc') AND r.TYPTEST= 'H' AND r.RESULTEST = '0' THEN 'NP'
WHEN (r.NOTEST = 'MSHGC' OR r.NOTEST = 'shgc') AND r.TYPTEST= 'H' AND r.RESULTEST = '1' THEN 'SH'
WHEN (r.NOTEST = 'MSHGC' OR r.NOTEST = 'shgc') AND r.TYPTEST= 'H' AND r.RESULTEST = 'IN' THEN 'IN'
--Cas 'MTP'
WHEN r.NOTEST='MMTCP' AND r.RESULTEST='MTF' THEN 'NP'
WHEN r.NOTEST='MMTCP' AND r.RESULTEST='MTC' THEN 'Porteur'
WHEN r.NOTEST='MMTP' AND r.RESULTEST='MTPF' THEN 'NP'
WHEN r.NOTEST='MMTP' AND r.RESULTEST='MTPC' OR r.RESULTEST='MTP' THEN 'NP'
WHEN r.NOTEST='MMH3' AND r.RESULTEST='MH3F' THEN 'NP'
WHEN r.NOTEST='MMH3' AND r.RESULTEST='MH3C' OR r.RESULTEST='MH3S' THEN 'NP'
WHEN r.NOTEST='HMTCP' AND r.RESULTEST='0' THEN 'NP'
WHEN r.NOTEST='HMTCP' AND r.RESULTEST='1' OR r.RESULTEST='2' THEN 'Porteur'
WHEN r.NOTEST='HMTP' AND r.RESULTEST='0' THEN 'NP'
WHEN r.NOTEST='HMTP' AND r.RESULTEST='1' OR r.RESULTEST='2' THEN 'Porteur'
WHEN r.NOTEST='HMH3' AND r.RESULTEST='0' THEN 'NP'
WHEN r.NOTEST='HMH3' AND r.RESULTEST='1' OR r.RESULTEST='2' THEN 'Porteur'
END;
SELECT CASE WHEN varRESULTEST IS NOT NULL THEN varNOTEST || ':' || varRESULTEST || ';'
WHEN varRESULTEST IS NULL THEN varNOTEST || ':' || r.RESULTEST || ';'
END
INTO varRESULTEST
FROM DUAL;
SELECT CONCAT(chainefinale, varRESULTEST) INTO chainefinale FROM DUAL;
END LOOP;
dbms_output.put_line(chainefinale);
END;
END; |
Partager