Σε 15-30 πεδία Where του SuperWhere το πιθανότερο είναι να έχει επιλέξει μόνο 1,2 ή 3. Οπότε το ποιό πιθανό είναι να ΜΗΝ έχει γίνη επιλογή το πελάτη σε καποια τίμη.Ο σκοπός είναι αν ΔΕΝ υπάρχει επιλογή του πελάτη να απομονωθεί - αγνοηθεί αυτόματα η επιλογή και να μην εξεταστεί αν υπάρξουν ή δεν υπάρχουν εγγραφές που να είναι συμβατές.

Ένα τέτοιο παράδειγμα είναι το ParPoso. Αν ο πελάτης που μπορεί αλλά δεν έχει επιλέξει ποσό τότε θέλει παραστατικά ανεξάρτητα αν έχουν εγγραφές ποσού ( εγγραφή στο ParPoso )

Οπότε έχουμε σε κάθε Where <<1. Δεν υπάρχει επιλογή φέρε όλες τις εγγραφές>> OR <<2. Υπάρχει Επιλογη φέρε μόνο τις Εγγραφές όπου>>

Αν ο πελάτης θέλει να δει τις εγγραφές του ParPoso που είναι > ή < από κάποιος ποσό τότε βάζουμε το ParPoso στο View

Βέβαια αυτό θα περιορίσει τα αποτελέσματα στα παραστατικά να έχουν ποσό Υποχρεωτικά. Αν δέν έχουν και ο πελάτης θέλει να δέι τα παραστατικά Where Ποσο < 10000000 δεν θα τα δεί.

Το OUTER JOIN ειναι πιθανό να φέρει πολλαπλές εγγραφές του ίδιου παραστατικού και εκτός από το ότι βαραίνει την κατάσταση με 2 και 3 OUTER JOIN δεν υπάρχει σιγουριά του αποτελέσματος

-------------------------   Όλα αυτά λύνονται ως εξής  ------------------------------------------------

Βάζουμε στο View Μόνο τους πίνακες που έχουν στοιχεία που θέλουμε να εμφανιστούν στην φόρμα. (αν υπάρχουν μεταξύ τους συνδετικοί πίνακες τους φέρνουμε και αυτούς γιατί λειτουργεί ποιο γρίγορα ο sql server αν χρησιμοποιηθούν για την διασύνδεση των πινάκων οι υπάρχων σχέσεις των πινάκων και όχι νέες συνδέσεις μέσα σε ένα view )

1. Περιπτώση όπου το Πεδίο που ρωτάει ο πελάτης με το SuperWhere να υπάρχει σε κάποιο πίνακα μέσα στο select του View

Π.Χ. WhereΧΧΧΧΧ.ParSiraCod και στο View έχουμε τον πίνακα Par όπου έχει το CodParSira

Α)Επιλέγουμε το WhereΧΧΧΧΧ.ParSiraCod όπου προστίθετε στο αποτέλεσμα του View

Β)Επιλέγουμε να μην εμφανίζετε

Γ)Βάζουμε στο Where το   = 0 OR = CodParSira

όπου μεταφράζετε στο sql κείμενο <<< and WhereΧΧΧΧΧ.ParSiraCoD = 0 Or WhereΧΧΧΧΧ.ParSiraCod = Par.CodParSira >>

Εαν ειναι 0 ΟΚ Εάν δεν είναι μηδέν πρέπει να είναι = Par.CodParSira ΟΚ

2. Περίπτωση το Πεδίο του SuperWhere ΔΕΝ υπάρχει σε κάποιο πίνακα μέσα στο select του View

Π.Χ. WhereΧΧΧΧΧ.PelLogistZoneCod

Α)Επιλέγουμε το ποιό κοντινό πεδίο από τους υπάρχων πίνακες του VIEW <<Par.CodPel>> όπου προστίθετε στο αποτέλεσμα του View

Β)Επιλέγουμε να μην εμφανίζετε

Γ)Βάζουμε στο Where το IN (SELECT CodPel FROM dbo.Par WHERE PelLogistZoneCod = 0) OR IN (SELECT Cod FROM Pel WHERE CodPelLogistZone = PelLogistZoneCod)

Σε αυτό το Where υπάρχουν δυο τμήματα PelLogistZoneCod = 0 ( Δεν έχουμε περιορισμό απο τον Πελάτη) OR ( Έχουμε περιορισμό)

1o Τμήμα IN (SELECT CodPel FROM dbo.Par WHERE PelLogistZoneCod = 0)

Πρέπει ο Par.CodPel να είναι μέσα στήν λιστα των ( SELECT CodPel FROM dbo.Par )

Με τον περιοστισμό που πρακτικά δεν ειναι περιοσιρμός αγου τους δεν περιορίζει κάτι << WHERE PelLogistZoneCod = 0 >>

τότε το SELECT CodPel FROM dbo. Par θα φέρει ολους τους CodPel From ALL Par ( Οπότε ΟΛΑ ΟΚ)

2o Τμήμα μετά το OR

Ο πελάτης θέλει μόνο τα παραστατικά Par Where Pel.CodPelLogistZone = Επιλογή πελάτη PelLogistZoneCod

<<< Par.CodPel IN (SELECT Cod FROM Pel WHERE CodPelLogistZone = PelLogistZoneCod) >>

Ο CodPel του Par πρέπει να είναι στους Select Pel όπου Where CodPelLogistZone = μόνο η ζυτούμενη PelLogistZoneCod από το whereXXX

Παράδειγμα με Poso ΜΙΝ

Στο Poso ΜΙΝ έχουμε πάντα την προεπιλογή την τιμή -9999999 οπότε αν ο πελάτης δεν δώσει τιμή τότε = -9999999 και αν < -9999998

τότε την θεωρούμε ΜΗ επιλόγη και δεν κάνουμε αχρίστα Where Που θα βαρένανε το View.

Και εδώ υπάρχουν βασικές περιπτώσεις να υπάρχει ή να μην υπάρχει το πεδίο στο View

Π.Χ. Ο Πελάτης θέλει τα παραστατικα που εχουν ΥΠΟΧΡΕΩΤΙΚΑ ΠΟΣΟ , πιθανότατα να θέλει να βλέπει το ποσο αυτό  και αυτό το ParPoso.Poso < ParPosoMAX

Τότε στο View Υπάρχει το ParPoso.Poso

Α)Επιλέγουμε το WhereΧΧΧΧΧ.ParPosoMAXόπου προστίθεται στο αποτέλεσμα του View

Β)Επιλέγουμε να μην εμφανίζετε ή αν το θέλει ο πελάτης να εμφανίζετε για να βλέπει το where

Γ)Βάζουμε στο Where το   < - 9999998 OR < ParPoso.Poso

Π.Χ. Ο Πελάτης θέλει τα παραστατικα που ΑΝ ΕΧΟΥΝ ΠΟΣΟ , ( ΔΕΝ ΘΕΛΕΙ ΝΑ ΤΟ ΒΛΕΠΕΙ) ΚΑΙ και αυτό το ParPoso.Poso (Αν υπάρχει) < ParPosoMAX

Τότε στο View ΔΕΝ Υπάρχει το ParPoso.PosoΤότε

Α)Επιλέγουμε Par.Cod ( Γιατι Θέλουμε να βρούμε τα παραστατικά Where ....)

Β)Επιλέγουμε να μην εμφανίζετε ( Δεν το Θέλουμε 15-20 φωρές )

Γ)Βάζουμε στο Where

                IN (SELECT Cod FROM dbo.Par       WHERE ParPosoMIN < - 9999998 )

                OR IN (SELECT CodPar FROM dbo.ParPoso WHERE Poso > ParPosoMIN

Αποτελέιτε πάντα απο το Δεν Υπάρχει επιλογη OR Υπάρχει Επιλογη και είναι =<>

<< SELECT Cod FROM dbo.ParWHERE ParPosoMIN < - 9999998>>  =   IF Αν δεν υπαρχει επιλογή του πελάτη ParPosoMIN < - 9999998 THEN  SELECT ALL FROM dbo.Par

OR IN (SELECT CodPar FROM dbo.ParPoso WHERE Poso > ParPosoMIN  /

Αν υπάρχει επιλογη τότε θέλουμε τα παραστατικά που είναι μέσα στην λίστα με τα παραστατικά που έχει κάνει ο πελάτης την επιλογή.