Πεδία Lookup και Ταξινόμηση (Order By)

Γενικές συζητήσεις για SQL και SQL Servers (RDBMS)

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
DelphiAvatar
Δημοσιεύσεις: 5
Εγγραφή: 20 Νοέμ 2006 15:34
Τοποθεσία: Θεσσαλονίκη

Πεδία Lookup και Ταξινόμηση (Order By)

Δημοσίευση από DelphiAvatar » 06 Δεκ 2006 17:06

Σενάριο:

Έχουμε ένα κεντρικό πίνακα ας πουμέ παραγγελιών και βοηθητικά αρχεία όπως πελάτες,αποθήκη κτλ.

Το πεδίο "πελάτης" του κεντρικού πίνακα είναι συνδεδεμένο με τον βοηθητικό πίνακα των πελάτων και σε αυτό καταχωρείται ο κωδικός του πελάτη και οχι η επωνυμία του.

Η εφαρμογή που διαχείριζεται την βάση σε χρόνο εκτέλεσης(Run Time) δημιουργεί ένα πεδιό το οποίο δείχνει στον χρήστη την επωνυμία του πελάτη και οχι τον κωδικό του.

Στην περίπτωση αυτή υπάρχει η δυνατότητα να γίνει ταξινόμηση με βάση το πεδίο που δημιουργήθηκε σε χρόνο εκτέλεσης και οχι με βάση το πεδίο "πελάτης" διότι η ταξινόμηση που γίνεται είναι εντελώς διαφορετική(και αυτό είναι απολύτως λογικό).

Σίγουρα εξαρτάται απο την εκάστοτε εφαρμογή που διαχείριζεται την βάση, απλά ρωτώ εαν υπάρχει δυνατότητα να πάρω το επιθυμητό αποτέλεσμα χρησιμοποιώντας SQL.

Ευχαριστώ εκ των προτέρων για τον χρόνο τον οποίο θα διαθέσει κανείς διαβάζοντας αυτές τις γραμμές.
Division by zero...

Άβαταρ μέλους
DelphiAvatar
Δημοσιεύσεις: 5
Εγγραφή: 20 Νοέμ 2006 15:34
Τοποθεσία: Θεσσαλονίκη

Πεδία Lookup και Ταξινόμηση (Order By)

Δημοσίευση από DelphiAvatar » 11 Δεκ 2006 11:31

Μια και κανείς δεν απάντησε στην ερώτηση μου είτε λόγω έλλειψης χρόνου ή για οποιοδήποτε άλλο λόγο..παραθέτω την λύση στο συγκεκριμένο ερώτημα που έθεσα...

SELECT
Πεδίο1,Πεδιο2,...Πεδίο ν

FROM
((([ΚεντρικόςΠινακας] LEFT JOIN [ΒοηθητικόςΠινακας1] ON [ΚεντρικόςΠινακας].Πεδίο = [ΒοηθητικόςΠίνακας1].Πεδίο) LEFT JOIN [ΒοηθητικόςΠίνακας2] ON [ΚεντρικόςΠίνακας].Πεδίο = [ΒοηθητικόςΠίνακας2].Πεδίο).... LEFT JOIN [ΒοηθητικόςΠίνακας_ν] [ΚεντρικόςΠίνακας].Πεδίο = [ΒοηθητικόςΠίνακας_ν].Πεδίο)


WHERE [ΚεντρικόςΠίνακας].Πεδίο =ΤΙΜΗ

ORDER BY [Πίνακας].Πεδιο
Division by zero...

Άβαταρ μέλους
GhostShip
Δημοσιεύσεις: 338
Εγγραφή: 30 Σεπ 2003 09:57
Τοποθεσία: Αθήνα

Πεδία Lookup και Ταξινόμηση (Order By)

Δημοσίευση από GhostShip » 11 Δεκ 2006 17:38

ή θα μπορούσες όλο αυτό να το αποφύγεις δημιουργώντας ένα view table στον SQL, και εσύ απλά να το καλείς μέσα από την web εφαρμογή.

Με αυτό τον τρόπο, και πιο γρήγορα θα γίνει η διαδικασία του fetch των δεδομένων και θα μειώσεις αισθητά την κατανάλωση πόρων του μηχανήματος.

Φυσικά την διαφορά δεν θα την καταλάβεις όταν ο αριθμός των δεδομένων είναι μικρός αλλά όταν θα πρέπει να τραβήξεις αρκετά δεδομένα και καθώς η βάση θα γεμίζει σιγά σιγά.
Εικόνα

Απάντηση

Επιστροφή στο “Βάσεις Δεδομένων και SQL - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης