nspyrou Δημοσ. 15 Δεκεμβρίου 2010 Δημοσ. 15 Δεκεμβρίου 2010 Πολύ standard SQL η κατάσταση απο ότι βλέπω. To having clause πρέπει να αναφέρεται σε πεδίο το οποίο περιέχεται στο group by clause ή περιλαβάνεται σε aggregate function .Σε καμία περίπτωση δεν πρέπει να περιλαμβάνει πεδίο του select list που δεν είναι μέρος του group by(ασχέτως αν στην περίπτωση σου παρασκηνιακά είναι) και μάλιστα να αντικαθιστά τον ρόλο του where clause . Φαντάζομαι οτι θα μου εξηγήσεις, λίγο πιο περιφραστικά τον όρο "πολύ standard SQL η κατάσταση από ότι βλέπω...". Υποθέτω πως, στην πληθώρα των ερωτημάτων, που έχουν αναρτηθεί σε αυτό το post, είναι ερωτήσεις που αποσκοπούν στην επίλυση μια εργασίας από τρίτους παρά από τον άμεσα ενδιαφερόμενο. Οι κατευθύνσεις καταθέτονται για καθοδήγηση και όχι για επίλυση των ασκήσεων είτε πανεπιστημιακών είτε σχολικών εργασιών. Σημειωτέον, ο οποιοσδήποτε θα μπορούσε απο χιλιόμετρα να καταλάβει, οτι το παράδειγμά μου εκτός του ότι είναι ένα ενδεικτικό παράδειγμα, προβάλλει την λογική της HAVING και όχι την σύνταξή της. Να γίνει αντιληπτός, δηλαδή, ο τρόπος που μπορεί λογικά να τον εντάξει στην επίλυση των προβλημάτων του και πότε μπορεί να το χρειαστεί. Υπο το συγκεκριμένο πρίσμα λοιπόν, δεν νομίζω κάποιος οτι θα έμπαινε στην διαδικασία να πάρει τον ψευδοκώδικα του πανεπιστημιακού του βιβλίου και να τον πετάξει σε μια γλώσσα και φυσικά να περιμένει να του βγάλει και αποτελέσματα ... Είναι γνωστή συνεπώς η χρήση της HAVING σε όλους τους developers, και ιδιαίτερα στο ΣΥΓΚΕΚΡΙΜΕΝΟ site!
Aztec Δημοσ. 15 Δεκεμβρίου 2010 Δημοσ. 15 Δεκεμβρίου 2010 Φαντάζομαι οτι θα μου εξηγήσεις, λίγο πιο περιφραστικά τον όρο "πολύ standard SQL η κατάσταση από ότι βλέπω...". Υποθέτω πως, στην πληθώρα των ερωτημάτων, που έχουν αναρτηθεί σε αυτό το post, είναι ερωτήσεις που αποσκοπούν στην επίλυση μια εργασίας από τρίτους παρά από τον άμεσα ενδιαφερόμενο. Οι κατευθύνσεις καταθέτονται για καθοδήγηση και όχι για επίλυση των ασκήσεων είτε πανεπιστημιακών είτε σχολικών εργασιών. Σημειωτέον, ο οποιοσδήποτε θα μπορούσε απο χιλιόμετρα να καταλάβει, οτι το παράδειγμά μου εκτός του ότι είναι ένα ενδεικτικό παράδειγμα, προβάλλει την λογική της HAVING και όχι την σύνταξή της. Να γίνει αντιληπτός, δηλαδή, ο τρόπος που μπορεί λογικά να τον εντάξει την επίλυση των προβλημάτων του και πότε μπορεί να το χρειαστεί. Υπο το συγκεκριμένο πρίσμα λοιπόν, δεν νομίζω κάποιος οτι θα έμπαινε στην διαδικασία να πάρει τον ψευδοκώδικα του πανεπιστημιακού του βιβλίου και να τον πετάξει σε μια γλώσσα και φυσικά να περιμένει να του βγάλει και αποτελέσματα ... Είναι γνωστή λοιπόν η χρήση της HAVING σε όλους τους developers, και ιδιαίτερα στο ΣΥΓΚΕΚΡΙΜΕΝΟ site! Ακριβώς η ένσταση μου είναι ότι δεν δείχνει την λογική της having. Χρησιμοποιείς της having ως υποκατάστατο της where στο συγκεκριμένο παράδειγμα. Δεν έκρινα την σύνταξη καθώς η σύνταξη κάνει μπαμ ότι είναι database specific και όχι standard sql . Αν παίξει πχ σε oracle έλα πες μου. Αλλά να χρησιμοποιείται ως υποκατάστατο της where είναι bad practice ακόμα και αν παίζει .
nspyrou Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Ακριβώς η ένσταση μου είναι ότι δεν δείχνει την λογική της having. Χρησιμοποιείς της having ως υποκατάστατο της where στο συγκεκριμένο παράδειγμα. Δεν έκρινα την σύνταξη καθώς η σύνταξη κάνει μπαμ ότι είναι databasase specific και όχι standard sql . αν παίξει πχ σε oracle έλα πες μου. Αλλά να χρησιμοποιείται ως υποκατάστατο της where είναι bad practice ακόμα και αν παίζει . Οπότε ορίζουμε απο τώρα και στο εξής ως standard επικοινωνίας τα πρότυπα του ANSI - ΙΕΕΕ και λοιπά προϊόντα και υποπροϊόντα απλώς για να ορίσουμε το τί εστί το κάθε τί ... Οπότε θα πρέπει δηλαδή να σπαστεί και το forum σε (Embarcadero) C++ / (Microsoft) C++ / C++ / C και γιατί όχι,, ας ακολουθήσουμε τη ροή του ανεστραμμένου δέντρου των γλωσσών ανά τις παρελθούσες δεκαετίες ... Δεν είναι η σημειολογία ο σκοπός, αλλά το μέσο ...
Aztec Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Οπότε ορίζουμε απο τώρα και στο εξής ως standard επικοινωνίας τα πρότυπα του ANSI - ΙΕΕΕ και λοιπά προϊόντα και υποπροϊόντα απλώς για να ορίσουμε το τί εστί το κάθε τί ... Οπότε θα πρέπει δηλαδή να σπαστεί και το forum σε (Embarcadero) C++ / (Microsoft) C++ / C++ / C και γιατί όχι,, ας ακολουθήσουμε τη ροή του ανεστραμμένου δέντρου των γλωσσών ανά τις παρελθούσες δεκαετίες ... Δεν είναι η σημειολογία ο σκοπός, αλλά το μέσο ... Αν δεν δέχεσαι τι λέω εγώ και να παραδεχτείς ότι έχεις άδικο τουλάχιστον διάβασε τι λέει το εγχειρίδιο της mysql για την σύνταξη σου .
nspyrou Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Αν δεν δέχεσαι τι λέω εγώ και να παραδεχτείς ότι έχεις άδικο τουλάχιστον διάβασε τι λέει το εγχειρίδιο της mysql για την σύνταξη σου . Από όσα σου είπα μέχρι τώρα δηλαδή, αυτό που κατάλαβες, και αυτό που απαντάς, είναι το να διαβάσω το εγχειρίδιο της mysql για τη σύνταξή μου?!!! Η απάντηση που ζητάς έχει δωθεί λίγο παραπάνω ... ψάξε μέσα στα τελευταία 2 post που έκανα και θα τη βρείς ... (φαντάζομαι) ...
Aztec Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Από όσα σου είπα μέχρι τώρα δηλαδή, αυτό που κατάλαβες, και αυτό που απαντάς, είναι το να διαβάσω το εγχειρίδιο της mysql για τη σύνταξή μου?!!! Η απάντηση που ζητάς έχει δωθεί λίγο παραπάνω ... ψάξε μέσα στα τελευταία 2 post που έκανα και θα τη βρείς ... (φαντάζομαι) ... Όχι ήθελα να διαβάσεις το σημείο που λέει να μην χρησιμοποιείται το having στην θέση του where . Για να δούμε τι λέει Do not use HAVING for items that should be in the WHERE clause. For example, do not write the following: SELECT col_name FROM tbl_name HAVING col_name > 0; Write this instead: SELECT col_name FROM tbl_name WHERE col_name > 0;
nspyrou Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Όχι ήθελα να διαβάσεις το σημείο που λέει να μην χρησιμοποιείται το having στην θέση του where . Το οποίο θα αποσκοπούσε κάπου φαντάζομαι ... πού ακριβώς??
Aztec Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Ακριβώς η ένσταση μου είναι ότι δεν δείχνει την λογική της having. Χρησιμοποιείς της having ως υποκατάστατο της where στο συγκεκριμένο παράδειγμα. Δεν έκρινα την σύνταξη καθώς η σύνταξη κάνει μπαμ ότι είναι database specific και όχι standard sql . Αν παίξει πχ σε oracle έλα πες μου. Αλλά να χρησιμοποιείται ως υποκατάστατο της where είναι bad practice ακόμα και αν παίζει .
nspyrou Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Ελληνικά είναι: Σημειωτέον, ο οποιοσδήποτε θα μπορούσε απο χιλιόμετρα να καταλάβει, οτι το παράδειγμά μου εκτός του ότι είναι ένα ενδεικτικό παράδειγμα, προβάλλει την λογική της HAVING και όχι την σύνταξή της. Να γίνει αντιληπτός, δηλαδή, ο τρόπος που μπορεί λογικά να τον εντάξει την επίλυση των προβλημάτων του και πότε μπορεί να το χρειαστεί. Υπο το συγκεκριμένο πρίσμα λοιπόν, δεν νομίζω κάποιος οτι θα έμπαινε στην διαδικασία να πάρει τον ψευδοκώδικα του πανεπιστημιακού του βιβλίου και να τον πετάξει σε μια γλώσσα και φυσικά να περιμένει να του βγάλει και αποτελέσματα ...
Aztec Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Σημειωτέον, ο οποιοσδήποτε θα μπορούσε απο χιλιόμετρα να καταλάβει, οτι το παράδειγμά μου εκτός του ότι είναι ένα ενδεικτικό παράδειγμα, προβάλλει την λογική της HAVING και όχι την σύνταξή της. Να γίνει αντιληπτός, δηλαδή, ο τρόπος που μπορεί λογικά να τον εντάξει την επίλυση των προβλημάτων του και πότε μπορεί να το χρειαστεί. Δεν την προβάλλει την λογική όπως είπα Υπο το συγκεκριμένο πρίσμα λοιπόν, δεν νομίζω κάποιος οτι θα έμπαινε στην διαδικασία να πάρει τον ψευδοκώδικα του πανεπιστημιακού του βιβλίου και να τον πετάξει σε μια γλώσσα και φυσικά να περιμένει να του βγάλει και αποτελέσματα ... Δεν καταλαβαίνω Ελληνικά ... έχεις όμως δίκιο . Τέλος η database specific σύνταξη που έδωσες είναι σωστή όπως και να έχει
nspyrou Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 Δεν την προβάλλει την λογική όπως είπα Δεν καταλαβαίνω Ελληνικά ... έχεις όμως δίκιο . Τέλος η database specific σύνταξη που έδωσες είναι σωστή όπως και να έχει ... and the story goes on and on and on and on ... Συνεχίζεις να επικεντρώνεσαι στο θέμα της σύνταξης,,,, δυστυχώς! Κάτι που ήδη έχω πει οτι δεν είναι σωστή, και κάτι που ήδη έχω εξηγήσει τον λόγο της συγκεκριμένης τοποθέτησης. Εμφανώς εμμένεις σε κάτι που ανάγει σε λίθινες και στερεότυπες αντιλήψεις. Αυτό είναι επιλογή σου. Οχι δική μου. Αν έβλεπες και λίγο παραπέρα (πέρα από το τί πιστεύεις μόνο εσύ) ίσως, και να μπορούσες να διακρίνεις το πνεύμα της αρχικής μου ανάρτησης. Δεν περιμένω την δική σου επεφημία ή αποδοκιμασία μετά από 12 χρόνια στην αγορά.. Για μένα μιλάνε τα έργα μου και οι πελάτες μου ... Τα πρότυπα, όπως το ANSI που ανάγεται και η SQL δεν δημιουργήθηκαν για να ορίσουν στερεότυπα αλλά κοινή βάση ανάπτυξης.. Μαζί με όλα αυτά λοιπόν τα οποία έχεις να προσάψεις (και λυπάμαι γι'αυτό) δες ποιά είναι η επόμενη γενιά της SQL (που φυσικά θα μου πεις οτι είναι λάθος,,,,, πάλι!) > var q = from p in db.Orders group p.Freight by p.CustomerID into g where g.Sum() > 200 select new { CustomerID = g.Key, FreightSum = g.Sum() }; Για να μη χτυπιέσαι,, φαντάζομαι οτι αναγνωρίζεις το LINQ ...
Aztec Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 και για μένα μιλάει η εμπειρία μου σε multi platform και database agnostic περιβάλλοντα καθώς και το πιστοποιημενο expertise μου σε databases. χρησιμοποίησε ότι θέλεις . αλλά μάθε τουλ. τον ρόλο της having . η ημιμαθεια είναι χειρότερη από την αμαθεία. Είπαμε χρησιμοποιείς λάθος την having . Η σύνταξη είναι σωστή.
nspyrou Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 και για μένα μιλάει η εμπειρία μου σε multi platform και database agnostic περιβάλλοντα καθώς και το πιστοποιημενο expertise μου σε databases. χρησιμοποίησε ότι θέλεις . αλλά μάθε τουλ. τον ρόλο της having . η ημιμαθεια είναι χειρότερη από την αμαθεία. Είπαμε χρησιμοποιείς λάθος την having . Η σύνταξη είναι σωστή. Έχεις δίκιο,, όντως η ημιμάθεια είναι χειρότερη από την αμάθεια ... αλλά άρχίζω και διερωτόμαι: Είναι όντως? Ή ο χώρος λυμαίνεται περισσότερο, από τους παγιοποιημένους οπισθοδρομισμούς μερικών ?!... Όσο για τον αν έχω εγώ κατανοήσει σωστά ή λάθος τον ρόλο της having, δεν είναι κάτι που αφορά εσένα. Και ως εκτούτου ποσώς με ενδιαφέρει το πιστοποιημένο σε multi-platform expertise σου σε database-agnostic super-duper περιβάλλοντα, της μέσης γης και του τρίτου πλανήτη δεξιά από τον Άρη! Για να μπορεί να εκτελεστεί η σύνταξη, υπάρχει λόγος! Και για να υπάρχει λόγος, υπάρχει η ανάγκη ... Και η GoTo της Basic του 1980 θεωρήθηκε λανθασμένη πρακτική σε μεταγενέστερες γλώσσες, και καμία δεν προτείνει τη χρήση της... άλλα όλες την συμπεριλαμβάνουν! Γιατί? Γιατί υπάρχει ανάγκη! Οπότε, θα περίμενα πως, ως άνθρωπος με το δικό σου expertise σε τέτοιου είδους συστήματα, θα είχες πιο ευρεία οπτική γωνία των θεμάτων αυτών. Άλλα είπαμε: Όπως δεν αφορά εσένα, το πως έχω (κι άν έχω), αντιληφθεί τη χρήση της having, άλλο τόσο δεν αφορά κι εμένα το πόσο ευρεία είναι η οπτική γωνία και η αντίληψη που έχεις επι των ζητημάτων αυτών.
Aztec Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 μα to hidden column extension φίλε μου δεν έχει φτιαχτεί για να κανείς αυτό που έκανες. Για αυτό η mysql λέει να μην χρησιμοποιείται έτσι. τώρα αν δεν το καταλαβαινεις τι να σου πω. είμαι οπισθοδρομικός. και τις μεταβλητες μου σε ένα πρόγραμμα μπορώ να τις ονομάζω όπως θέλω αλλά υπάρχουν συγκεκριμένα conventions κσι good programming practices.
nspyrou Δημοσ. 16 Δεκεμβρίου 2010 Δημοσ. 16 Δεκεμβρίου 2010 μα to hidden column extension φίλε μου δεν έχει φτιαχτεί για να κανείς αυτό που έκανες. Για αυτό η mysql λέει να μην χρησιμοποιείται έτσι. τώρα αν δεν το καταλαβαινεις τι να σου πω. είμαι οπισθοδρομικός. και τις μεταβλητες μου σε ένα πρόγραμμα μπορώ να τις ονομάζω όπως θέλω αλλά υπάρχουν συγκεκριμένα conventions κσι good programming practices. Τα "good programming practices" ως γνωστόν (πια), αλλάζουν μέρα με την ημέρα, και μήνα με το μήνα. Και αυτό θα διαιωνίζεται όσο προχωράει η τεχνολογία της πληροφορικής στο σύνολό της και του software development που πρόσκειται στο επικείμενο. Το να μου εξειδικεύεις μια συγκεκριμένη κατάσταση που, σαφώς, έχεις δίκιο οτι ισχύει και το αναγνωρίζω πλήρως, ξέχωρα αν το λέει η MySQL, δεν σημαίνει οτι εξαλείφεται η ύπαρξη την ανάγκης. Σου υπενθυμησα το θέμα της GOTO ... baaaaaaad practice,, αλλά το VS 2010 Ultimate το χρησιμοποιεί μια χαρά, και το Embarcadero RAD Studio XE το παίζει περίφημα και το υποστηρίζει καλλιστότατα, όπως και πολλά άλλα περιβάλλοντα ανάπτυξης. Οπότε αν μια Microsoft και μια Borland/Imprise/Borland(πάλι!)/CodeGear/Embarcadero (ή όπως θες) δεν προσδιορίζουν το κύρος που επιζητάς,, τί να πω ... απαξίωσέ τες ...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.