Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Πώς να βρεί Missing Records Χρησιμοποιώντας τον SQL

Απουσία ερωτηθούν στοιχεία δείχνουν μόνο το παρόν δεν υπάρχει . Ένα ρεκόρ που λείπει , ωστόσο, είναι τα στοιχεία που θα μπορούσαν ή θα έπρεπε να είναι παρόντες , αλλά δεν είναι . Για παράδειγμα , τα στοιχεία των πελατών και των παραγγελιών διαμένουν σε πίνακες πελάτες και παραγγελίες . Μια λίστα των πελατών ζητείται , και εσείς , ο προγραμματιστής , να αναλάβει ο κάθε πελάτης έχει την παραγγελία . Παρέχοντας στους πελάτες από τις παραγγελίες πρέπει να παρέχουν τη σωστή λίστα των πελατών , αλλά δεν είναι; Λίστα πελάτες από τους πελάτες μπορεί να δώσει περισσότερα , γεγονός που υποδηλώνει ορισμένοι πελάτες έχουν τις παραγγελίες που λείπουν . Θα πρέπει να εξακριβωθεί ποιοι πελάτες λείπουν εντολές και στη συνέχεια να καταλάβει αν η κατάσταση αυτή οφείλεται στη σχεδίαση ή ένα bug . Οδηγίες
Η 1

Εμφάνιση διακριτές πελάτες ΠΕΛΑΤΕΣ πίνακα . Για παράδειγμα :

SELECT DISTINCT ΠΕΛΑΤΕΣ C.CUSTOMERIDFROM C 2

Εμφάνιση διακριτές πελάτες ΠΑΡΑΓΓΕΛΙΕΣ πίνακα . Για παράδειγμα :

SELECT DISTINCT ΠΑΡΑΓΓΕΛΙΕΣ O.CUSTOMERIDFROM O εικόνων
3

Καθορίστε τους πελάτες με τις παραγγελίες που λείπουν συνδυάζοντας τα βήματα 1 και 2 σε ένα δευτερεύον ερώτημα συσχετίζονται

select distinct ΠΕΛΑΤΕΣ C.CUSTOMERIDFROM CWHERE δΕΝ ΥΠΑΡΧΕΙ ( SELECT * FROM ΠΑΡΑΓΓΕΛΙΕΣ OWHERE O.CUSTOMERID = C.CUSTOMERID )

ΥΠΑΡΧΕΙ είναι μια λειτουργία της Oracle που ελέγχει για την ύπαρξη επέστρεψε αρχεία δευτερεύον ερώτημα . Προλογίζοντας με " NOT" τεστ για την απουσία των αρχείων . Εδώ , το δευτερεύον ερώτημα ταιριάζει με τους πελάτες και στους δύο πίνακες . Αγώνες επιστρέφουν αποτελέσματα, τα οποία θα εξαιρεθούν τα συμφωνημένα ΚωδΠελάτη από το κύριο σύνολο αποτελεσμάτων . Μόνο ΚωδΠελάτη με κανένα αγώνα O.CUSTOMERID θα εμφανίζεται .
Η 4

Εναλλακτικά , καθορίζουν λείπουν αρχεία από ένα σύνθετο θέα cusotmer και τραπέζια ORDER .

Select distinct ΠΕΛΑΤΕΣ C.CUSTOMERIDFROM C , ΠΑΡΑΓΓΕΛΙΕΣ OWHERE C.CUSTOMERID = O.CUSTOMERID ( + ) και O.CUSTOMERID είναι null

Αν υποψιάζεστε ότι ο πίνακας Τάξης θα μπορούσαν να λείπουν τα αρχεία , στη συνέχεια, δοκιμάστε αυτό το ερώτημα για να εμφανιστεί C.CUSTOMERID και την πλευρά O.CUSTOMERID από την πλευρά . Το ( + ) επικαλείται έναν αριστερό εξωτερικό σύνδεσμο , που λέει Oracle για να δείξει όλα τα στοιχεία που ταιριάζουν με την WHERE δήλωση καθώς και κάθε C.CUSTOMERID ' s από τον πίνακα αριστερά που δεν έχουν αντιστοιχία O.CUSTOMERID ' s στη δεξιά πλευρά του πίνακα .

Αν υπάρχουν C.CUSTOMERID ' s δεν ταιριάζουν με O.CUSTOMERID ' s , θα δείξει με μηδενικές τιμές για το ανύπαρκτο O.CUSTOMERID ' s . Οι σειρές που έχουν τέτοια μηδενικά αντιπροσωπεύουν τα ελλείποντα αρχεία τάξης.

Εάν η λίστα είναι πολύ μεγάλη για την οπτική επιθεώρηση , το δεύτερο WHERE δήλωση εξασφαλίζει τα αποτελέσματα περιορίζονται σε C.CUSTOMERID ' s με τις παραγγελίες που λείπουν .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα