tommyboyau
Programmer
Hi All,
I have the following SQL script:
Which generates the following data:
BW250 7
Beer Supply 2
Changeover 29
Crowner 7
Depal 11
Depal A 3
Filler 45
Jones Packer 5
Labeller 60
Lid Feeder 12
Line Not Scheduled To Run 13
Packer 52
Packer - Dimac 6
Packer - Kister 20
Packer - Ocme 11
Palletiser 70
Palletiser A 2
Palletiser B 1
Pasteuriser 9
Rinser 15
Seamer 2
Shrink Wrapper B 1
Shrinkwrap 46
Unaccounted 10
Work Area 17
ZUNK 2711
How do I rank the data so it displays only the top 10 results (highest to lowest) as shown below:
ZUNK 2711
Palletiser 70
Labeller 60
Packer 52
Shrinkwrap 46
Filler 45
Changeover 29
Packer - Kister 20
Work Area 17
Rinser 15
I've tried ranking but can't seem to get it to work.
Your help is appreciated.
Thanks,
Tom
I have the following SQL script:
Code:
SELECT DISTINCT
DIM_PMD_SUB_REASON.REASON_DESC,
sum(BAS_PMD_SA_EVENT_DATA.STOPS_COUNT),
ROW_NUMBER() OVER (ORDER BY sum(BAS_PMD_SA_EVENT_DATA.STOPS_COUNT) DESC) "TOP10"
FROM
DIM_DAY,
DIM_PMD_SUB_REASON,
BAS_PMD_SA_EVENT_DATA,
V_DIM_PMD_SHIFT_CREW
WHERE
TOP10 <=10 AND
( DIM_PMD_SUB_REASON.PRODUCTION_LINE_CODE = BAS_PMD_SA_EVENT_DATA.PRODUCTION_LINE_CODE AND DIM_PMD_SUB_REASON.SUB_REASON_CODE = BAS_PMD_SA_EVENT_DATA.SUB_REASON_CODE )
AND ( BAS_PMD_SA_EVENT_DATA.CALENDAR_DATE=DIM_DAY.CALENDAR_DATE )
AND ( V_DIM_PMD_SHIFT_CREW.PRODUCTION_LINE_CODE=BAS_PMD_SA_EVENT_DATA.PRODUCTION_LINE_CODE AND V_DIM_PMD_SHIFT_CREW.SHIFT_START_TIME = BAS_PMD_SA_EVENT_DATA.SHIFT_START_TIME )
AND (
( V_DIM_PMD_SHIFT_CREW.SHIFT_START_TIME BETWEEN trunc(sysdate)-10 AND trunc(sysdate) )
)
GROUP BY
DIM_PMD_SUB_REASON.REASON_DESC;
SELECT DISTINCT
DIM_PMD_SUB_REASON.REASON_DESC,
sum(BAS_PMD_SA_EVENT_DATA.STOPS_COUNT)
FROM
DIM_DAY,
DIM_PMD_SUB_REASON,
BAS_PMD_SA_EVENT_DATA,
V_DIM_PMD_SHIFT_CREW
WHERE
( DIM_PMD_SUB_REASON.PRODUCTION_LINE_CODE = BAS_PMD_SA_EVENT_DATA.PRODUCTION_LINE_CODE AND DIM_PMD_SUB_REASON.SUB_REASON_CODE = BAS_PMD_SA_EVENT_DATA.SUB_REASON_CODE )
AND ( BAS_PMD_SA_EVENT_DATA.CALENDAR_DATE=DIM_DAY.CALENDAR_DATE )
AND ( V_DIM_PMD_SHIFT_CREW.PRODUCTION_LINE_CODE=BAS_PMD_SA_EVENT_DATA.PRODUCTION_LINE_CODE AND V_DIM_PMD_SHIFT_CREW.SHIFT_START_TIME = BAS_PMD_SA_EVENT_DATA.SHIFT_START_TIME )
AND (
( V_DIM_PMD_SHIFT_CREW.SHIFT_START_TIME BETWEEN trunc(sysdate)-10 AND trunc(sysdate) )
)
GROUP BY
DIM_PMD_SUB_REASON.REASON_DESC;
Which generates the following data:
BW250 7
Beer Supply 2
Changeover 29
Crowner 7
Depal 11
Depal A 3
Filler 45
Jones Packer 5
Labeller 60
Lid Feeder 12
Line Not Scheduled To Run 13
Packer 52
Packer - Dimac 6
Packer - Kister 20
Packer - Ocme 11
Palletiser 70
Palletiser A 2
Palletiser B 1
Pasteuriser 9
Rinser 15
Seamer 2
Shrink Wrapper B 1
Shrinkwrap 46
Unaccounted 10
Work Area 17
ZUNK 2711
How do I rank the data so it displays only the top 10 results (highest to lowest) as shown below:
ZUNK 2711
Palletiser 70
Labeller 60
Packer 52
Shrinkwrap 46
Filler 45
Changeover 29
Packer - Kister 20
Work Area 17
Rinser 15
I've tried ranking but can't seem to get it to work.
Your help is appreciated.
Thanks,
Tom