Παρασκευή, 20 Νοεμβρίου 2015

QlikView variable ως παράμετρος σε SQL query...

Το σημερινό tip είναι κάτι που έφτιαξα πριν περίπου 2 χρόνια, στην αρχή της ενασχόλησής μου με το QlikView, και προέκυψε από την ανάγκη να διαβάσω μια λίστα πελατών από ένα data source και μετά να περάσω αυτή την λίστα σαν παράμετρο σε ένα άλλο data source, μια βάση δεδομένων, για να συλλέξω όλη την πληροφορία που αφορούσε τους πελάτες αυτούς... Μετά από 2 χρόνια εντατικής δουλειάς και εμπειρίας ξέρω ότι υπάρχουν κι άλλοι τρόποι, να κάνεις την ίδια δουλειά, η συγκεκριμένη υλοποίηση όμως είναι ενδιαφέρουσα ως προς την χρήση των variables μέσα στο QlikView script σε συνδυασμό με SQL queries...

Έστω λοιπόν ότι το πρώτο data source είναι ένα Excel αρχείο στο οποίο περιέχονται κωδικοί πελατών τους οποίους θέλουμε να διαβάσουμε και να αναζητήσουμε σε ένα άλλο data source, μια βάση δεδομένων... Για να το καταφέρουμε αυτό θα δημιουργήσουμε μια μεταβλητή η οποία θα περιέχει σαν ένα μεγάλο string, όλους τους κωδικούς πελατών (χωρισμένους με κόμματα και κλεισμένους μέσα σε "αυτάκια") και θα την θέσουμε σαν παράμετρο του WHERE statement του query με το οποίοι θα διαβάσουμε τη βάση... 

Αυτό επιτυγχάνεται, όπως θα δείτε στο πρώτο script πιο κάτω, δημιουργώντας μια μεταβλητή (vNoOfRows) που θα περιέχει τον αριθμό των κωδικών πελατών που φορτώσαμε στο QlikView και τρέχοντας ένα for loop για κάθε ένα CustomerID που βρίσκει, μέχρι τον αριθμό του vNoOfRows ...Σε κάθε λούπα προσθέτουμε το CustomerID στην μεταβλητή vCus η οποία θα περιέχει στο τέλος όλη την λίστα των CustomerIDs χωρισμένων με κόμματα σε μορφή τέτοια ώστε να μπορέσουμε να την ενσωματώσουμε σε ένα SQL Query...



Από αυτό το σημείο και μετά τα πράγματα είναι πολύ απλά... Απλά τρέχουμε το query μας με παράμετρο την μεταβλητή vCus και φορτώνουμε στο QlikView τα στοιχεία μόνο εκείνων των πελατών που μας αφορούν...

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου