Knowledge Base Nr: 00094 verwiegecursor.txt - http://www.swe-kaiser.de

Downloads:

SQL: (oracle) cursor verwiegung mischkammer

  
EXEC SQL DECLARE C_LESE_VERW_DATEN CURSOR FOR
SELECT feschritt.fertsch,
decode(substr(feschritt.fertsch,3,6),
'MKAVNB', decode(vnp.anz_vnp, 0, '-',
decode(vnp.anz_vnp, vnp_E.anz_vnp_E,
'Vernetzerpulver beteiligt und komplett verwogen!',
'Vernetzerpulver beteiligt und noch nicht verwogen!')),
'MKAVNP', decode(vnb.anz_vnb, 0, '-',
decode(vnb.anz_vnb, vnb_E.anz_vnb_E,
'Vernetzerbatch beteiligt und komplett verwogen!',
'Vernetzerbatch beteiligt und noch nicht verwogen!')),
'-'),
NVL(fefunkt.t_nr,' '),
NVL(r_name,' '),
TO_CHAR(NVL(geb_nr,0)),
NVL(SOLL,0),
NVL(UGW,0),
NVL(OGW,0),
NVL(fefunkt.mkeh,' '),
TO_CHAR(NVL(fefunkt.sfertnr,0)),
TO_CHAR(NVL(fefunkt.cfertnr,0)),
TO_CHAR(NVL(fefunkt.vfertnr,0)),
TO_CHAR(NVL(fefunkt.ffertnr,0)),
to_char(fec.chnra),
to_char(fec.batch),
t_kar.anz_sfertnr,
kar_frei.kar_pos_akt,
htnr1,
htnr2,
htnr3,
htnr4,
mka_auf_hinw.lfdnr,
mka_auf_hinw.text,
decode(feschritt.cfertnr, cfertnr_max,1,0),
decode(feschritt.cfertnr, cfertnr_min,1,0),
decode(feschritt.fertsch, fertsch_max,1,0),
decode(feschritt.fertsch, fertsch_min,1,0),
decode(fefunkt.fertfu, fertfu_max,1,0),
decode(fefunkt.fertfu, fertfu_min,1,0),
arb.karussell
FROM lr.fefunkt, lr.feschritt, lr.mka_auf_hinw,
( select cfertnr,
rpad(TO_CHAR(NVL(fecharge.chnra,1)),6) chnra,
TO_CHAR(NVL(fecharge.batch,1)) batch
from lr.fecharge
where fertnr = :db_fertnr ) fec,
( select max(cfertnr) cfertnr_max, min(cfertnr) cfertnr_min
from lr.fecharge
where fertnr = :db_fertnr ) fec1,
( select vfertnr,max(fertsch) fertsch_max, min(fertsch) fertsch_min
from lr.feschritt
where fertnr = :db_fertnr
and substr(fertsch,3,6) = (select fertart
from arbplatz)
group by vfertnr) fes,
( select sfertnr,max(fertfu) fertfu_max, min(fertfu) fertfu_min
from lr.fefunkt
where fertnr = :db_fertnr
and substr(fertfu,3,6) = (select fertart
from arbplatz)
group by sfertnr) fef,
( select karussell, fertart, verwart, max_beh, decode(verwart,'CHA',0,1) nverwart
from arbplatz) arb,
( SELECT nvl(min(kar_pos),-1) kar_pos_akt
from t_karussell
where sfertnr is null) kar_frei,
( select count(sfertnr) anz_sfertnr
from t_karussell) t_kar,
( select count(*) anz_vnb
from feschritt
where fertnr = :db_fertnr
and substr(fertsch,3,6) = 'MKAVNB' ) vnb,
( select count(*) anz_vnb_E
from feschritt
where fertnr = :db_fertnr
and substr(fertsch,3,6) = 'MKAVNB'
and status = 'E') vnb_E,
( select count(*) anz_vnp
from feschritt
where fertnr = :db_fertnr
and substr(fertsch,3,6) = 'MKAVNP' ) vnp,
( select count(*) anz_vnp_E
from feschritt
where fertnr = :db_fertnr
and substr(fertsch,3,6) = 'MKAVNP'
and status = 'E') vnp_E
WHERE feschritt.fertnr = :db_fertnr
AND ( (arb.karussell = 0) or ( arb.karussell = 1 and decode(fefunkt.fertfu , fertfu_min ,1,0) = 1
and kar_frei.kar_pos_akt != -1 )
or ( arb.karussell = 1 and feschritt.sfertnr in (select sfertnr
from t_karussell) ) )
AND feschritt.cfertnr = fec.cfertnr
AND feschritt.sfertnr = fefunkt.sfertnr
AND feschritt.vfertnr = fes.vfertnr
AND feschritt.sfertnr = fef.sfertnr
AND SUBSTR(fefunkt.fertfu,3,6) = (select fertart
from arbplatz)
AND fefunkt.status IN ('I','S','G')
AND decode(feschritt.cfertnr, cfertnr_max,1,0) = c_max
AND decode(feschritt.cfertnr, cfertnr_min,1,0) = c_min
AND decode(feschritt.fertsch, fertsch_max,1,0) = b_max
AND decode(feschritt.fertsch, fertsch_min,1,0) = b_min
AND decode(fefunkt.fertfu , fertfu_max ,1,0) = f_max
AND decode(fefunkt.fertfu , fertfu_min ,1,0) = f_min
AND bezug_flag = decode(arb.verwart,'CHA',0,
'AUF',1,-1)
ORDER BY feschritt.fertsch,
decode(arb.nverwart,0,fefunkt.cfertnr * -1,to_number(substr(fefunkt.fertfu,10,2))),
decode(arb.nverwart,0,to_number(substr(fefunkt.fertfu,10,2)),
decode(arb.fertart,'MKAFPM',feschritt.sfertnr * -1,
'MKAHF1',feschritt.sfertnr * -1,
'MKAHF2',feschritt.sfertnr * -1,
'MKAASM',feschritt.sfertnr * -1,
'MKAVNP',feschritt.sfertnr * -1,
'MKAWMH',feschritt.sfertnr * -1,
'MKAWMS',feschritt.sfertnr * -1,
'MKADFS',feschritt.sfertnr * -1,
'MKAHAZ',feschritt.sfertnr * -1,
'MKAVNB',decode(to_number(substr(fefunkt.fertfu,11,1)),1,
feschritt.sfertnr,
feschritt.sfertnr * -1),
feschritt.sfertnr)),
decode(arb.nverwart,0,fefunkt.cfertnr * -1,fefunkt.cfertnr * -1);