Oracle SQL
Mind to change the where and ands to your needs...
SELECT LITM"Artikel",OMS"Omschrijving",VRIJEVOORRAAD"Vrije Voorraad",
MAX(DECODE(PLANK,'0-30','V','-')) "0-30",
MAX(DECODE(PLANK,'30-60','V','-')) "30-60",
MAX(DECODE(PLANK,'60-120','V','-')) "60-120",
MAX(DECODE(PLANK,'120-180','V','-')) "120-180",
MAX(DECODE(PLANK,'>180','V','-')) ">180"
FROM
(
SELECT /*+RULE */
DISTINCT
IL.ILLITM LITM,
IM.IMDSC1||IM.IMDSC2 OMS,
decode(trunc((sysdate-JDETO_DATE(IL.ILTRDJ))/30),0,'0-30',1,'30-60',2,'60-120',3,'120-180',4,'120-180',5,'120-180','>180') PLANK,
vv.vrijevoorraad VRIJEVOORRAAD
FROM F4111 IL,
F4101 IM,
(
SELECT LI.LIITM ARTIKEL,
SUM(LI.LIPQOH - (LI.LIHCOM + LI.LIPCOM)) VRIJEVOORRAAD
FROM F41021 LI
WHERE LI.LIMCU = ' SN-2'
GROUP BY LI.LIITM
HAVING SUM(LIPQOH - (LIHCOM + LIPCOM)) >0
) VV
WHERE VV.ARTIKEL = IL.ILITM AND
IL.ILITM = IM.IMITM AND
IM.IMLITM NOT LIKE '%-V %' AND
IM.IMSRP2 <> '321' AND
IL.ILDCT IN ('RI', 'IT', 'SO')
)
GROUP BY LITM,OMS,VRIJEVOORRAAD;