Εργαστήριο 10o Συγκεντρωτικά Ερωτήματα Ερωτήματα Διασταύρωσης Ερωτήματα Ενεργειών
Συγκεντρωτικά ερωτήματα Με τα συγκεντρωτικά ερωτήματα μπορούμε να ομαδοποιήσουμε τα δεδομένα μας και να υπολογίσουμε για κάθε ομάδα κάποια από τις συναρτήσεις ομαδοποίησης. Στην προβολή σχεδίασης του ερωτήματος θα πρέπει να αλλάξουμε τον τύπο του ερωτήματος σε συγκεντρωτικά πατώντας το κουμπί Σύνολα Στην συνέχεια επιλέγουμε τα πεδία ομαδοποίησης και τις συναρτήσεις ομαδοποίησης.
Συγκεντρωτικές συναρτήσεις
Συγκεντρωτικές συναρτήσεις Ο τύπος για κάθε πεδίο σε ένα συγκεντρωτικό ερώτημα θα πρέπει να είναι:
Συγκεντρωτικές συναρτήσεις Οι συγκεντρωτικές συναρτήσεις δεν συμπεριλαμβάνουν εγγραφές που περιέχουν κενές (NULL) τιμές στους υπολογισμούς τους. Για παράδειγμα η συνάρτηση πλήθος (count) μετράει μόνο τις εγγραφές στις οποίες το καταμετρούμενο πεδίο έχει κάποια τιμή, δηλαδή δεν είναι NULL. Αν θέλουμε να καταμετρήσουμε και τις τιμές NULL, θα πρέπει πρώτα να τις μετατρέψουμε με συνάρτηση π.χ την Nz(πεδίο;τιμή) σε κάποια άλλη τιμή π.χ. 0. και να καταμετρήσουμε το αποτέλεσμα της συνάρτησης
Ερωτήματα διασταύρωσης Τα ερωτήματα διασταύρωσης είναι συγκεντρωτικά ερωτήματα με τα οποία παρουσιάζουμε τα αποτελέσματα με μορφή πίνακα δύο διαστάσεων. Στην προβολή σχεδίασης του ερωτήματος θα πρέπει να αλλάξουμε τον τύπο του ερωτήματος σε ερώτημα διασταύρωσης πατώντας το κουμπί Διασταύρωση Στην συνέχεια επιλέγουμε ποια από τα πεδία ομαδοποίησης θα είναι ετικέτες γραμμής και ποια στήλης. Η ετικέτα στήλης θα πρέπει να είναι μία μόνο. Τέλος επιλέγουμε την (μία μόνο) συνάρτηση ομαδοποίησης σαν πεδίο τιμής.
Ερωτήματα ενεργειών Τα ερωτήματα ενεργειών είναι ερωτήματα τα οποία σε αντίθεση με τα ερωτήματα επιλογής δεν επιλέγουν εγγραφές από τους πίνακες της βάσης δεδομένων αλλά κάνουν κάποια ενέργεια σε αυτές. Π.χ. Εισαγωγή, Ενημέρωση, Διαγραφή. Διακρίνονται στις παρακάτω κατηγορίες: Ερωτήματα Δημιουργίας Πίνακα. Δημιουργούν πίνακα από τα δεδομένα άλλων πινάκων. Ουσιαστικά πρόκειται για ερωτήματα επιλογής το αποτέλεσμα των οποίων εισάγεται σε έναν νέο πίνακα που δημιουργείται αυτόματα για τον σκοπό αυτό. Κάθε φορά που εκτελείται ένα τέτοιο ερώτημα δημιουργείται ο πίνακας και εισάγονται οι εγγραφές. Αν ο πίνακας υπάρχει ήδη, διαγράφεται πρώτα.
Ερωτήματα ενεργειών Ερωτήματα Προσάρτησης. Επιλέγουν εγγραφές από διάφορους πίνακες και τις εισάγουν σε έναν άλλο. Είναι όμοια με τα δημιουργίας πίνακα, με την διαφορά ότι ο πίνακας προορισμού θα πρέπει να υπάρχει. Ερωτήματα Ενημέρωσης. Ενημερώνουν τα εγγραφές σε κάποιον πίνακα. Η ενημέρωση γίνεται μαζικά με βάση κριτήρια τα οποία επιλέγουν τις εγγραφές οι οποίες θα ενημερωθούν. Ερωτήματα Διαγραφής. Διαγράφουν εγγραφές από έναν πίνακα με μαζικό τρόπο βάση κριτηρίων επιλογής των εγγραφών που θα διαγραφούν.
Ασκήσεις Να δημιουργήσετε ερώτημα το οποίο να δείχνει τις πωλήσεις (συνολική αξία) για κάθε κατάστημα. Από 01/05/2006 έως 20/05/2006. Να μετατρέψετε το παραπάνω ερώτημα σε παραμετρικό. Έτσι ώστε το χρονικό διάστημα να ζητείται από την Access κατά την εκτέλεση του ερωτήματος. Να δημιουργήσετε ερώτημα διασταύρωσης το οποίο να δείχνει τις εισπράξεις (πίνακας TRADEPAY) ανά κατάστημα στις γραμμές και ανά τρόπο πληρωμής (πίνακας PAYKIND). Για τον μήνα Μάϊο του 2006.
Ασκήσεις Να δημιουργήσετε έναν νέο πίνακα με ερώτημα δημιουργίας πίνακα ο οποίος να περιέχει τους πωλητές των καταστημάτων 901 και 904. Να προσθέσετε στον παραπάνω πίνακα και τους πωλητές από το κατάστημα 902. Να ενημερώσετε την εκπτωτική τιμή των προϊόντων (πεδίο sales_price) έτσι ώστε να είναι 20% χαμηλότερη από την κανονική (πεδίο price). Να ενημερώσετε την εκπτωτική τιμή όσων προϊόντων ο κωδικός αρχίζει από 2 έτσι ώστε να είναι 30% χαμηλότερη από την κανονική. Να ενημερώσετε την τιμή χονδρικής (πεδίο whs_price) όλων των προϊόντων αφαιρώντας τον ΦΠΑ από την τιμή Λιανικής (πεδίο price). Ο τύπος υπολογισμού που θα χρησιμοποιήσετε είναι τιμή λιανικής / (1 + ποσοστό ΦΠΑ)
Να διαγράψετε όλα τα είδη που ο κωδικός τους αρχίζει από 99. Δοκιμάστε να κάνετε το ίδιο για τα είδη με κωδικό που αρχίζει με 00. Τι παρατηρείτε; Μπορείτε να το εξηγήσετε; Ασκήσεις