Τελικά πάντα υπάρχει πιο εύκολος και πιο αποδοτικός τρόπος για τα πάντα.
Έστω οτι έχουμε ένα report ανά μήνα τις πωλήσεις και θέλουμε να φέρουμε στις διπλανές κολώνες το αξιακό του προηγούμενο και το αξιακό του επόμενου.Ο "προγραμματιστικός" τρόπος είναι να σκεφτεί κάποιος,θα φέρω το τρέχων άθροισμα μέχρι και τώρα και θα αφαιρέσω το τρέχων.Υπάρχουν πολλές υλοποιήσεις και απαντήσεις είτε σε blog είτε στο forum της Oracle.
Ας δούμε όμως τι μας προσφέρει η Oracle.Analytics Functions,πχ τις lead kai lag,που κάνουν ακριβώς αυτή την δουλειά.Το μόνο που πρέπει να προσέχουμε είναι το SORTARISMA.
EVALUATE('LAG(%1,1) over (order by %2)' as double, FACT."SalesValue","Calendar"."Month")
EVALUATE('LEAD(%1,1) over (order by %2)' as double, FACT."SalesValue","Calendar"."Month")
και ......
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου