atsaloux Δημοσ. 11 Φεβρουαρίου 2009 Δημοσ. 11 Φεβρουαρίου 2009 Καλησπέρα σε όλους. Μια μικρή βοήθεια με ένα SQL query θα ήθελα. Έχω το παρακάτω: >cmdAAA.CommandText = "SELECT DISTINCT (aValue) as [aValue],count(members.bValue) as [Πλήθος μελών] FROM tbl INNER JOIN members ON tbl.aValue = members.bValue GROUP BY tbl.aValue ORDER BY aValue ASC" Στον πίνακα members υπάρχουν αντίστοιχα 2 fields ακόμα (cValue και dValue) τα οποία έχουν τιμές όμοιες με αυτές του aValue. Αυτό που θέλω είναι να τροποποιήσω το query ώστε να βγάζει αποτελέσματα λαμβάνοντας υπ' όψιν και τις τιμές των cValue και dValue. Ευχαριστώ εκ των προτέρων.
random Δημοσ. 11 Φεβρουαρίου 2009 Δημοσ. 11 Φεβρουαρίου 2009 ...να βγάζει αποτελέσματα λαμβάνοντας υπ' όψιν και τις τιμές των cValue και dValue δεν κατάλαβα τι εννοείς "λαμβάνοντας υπ' όψιν". θελεις να βαλεις αυτα τα δύο πεδια στα κριτήρια, σαν φίλτρο ? π.χ. >SELECT DISTINCT (aValue) as [aValue], count(members.bValue) as [Πλήθος μελών] FROM tbl INNER JOIN members ON tbl.aValue = members.bValue WHERE cValue = 1000 AND dValue = 2000 GROUP BY tbl.aValue ORDER BY aValue ASC ή να κάνεις μια πράξη (count, avg, sum, κλπ..) πάνω σε αυτα και να τη δείχνεις στα αποτελέσματα ? π.χ. >SELECT DISTINCT (aValue) as [aValue], count(members.bValue) as [Πλήθος μελών] , count(members.cValue) as [Πλήθος cValue] , count(members.dValue) as [Πλήθος dValue] FROM tbl INNER JOIN members ON tbl.aValue = members.bValue GROUP BY tbl.aValue ORDER BY aValue ASC ps. δεν καταλαβαίνω τι χρησιμεύει αυτο το DISTINCT στην αρχή, απο τη στιγμή που κάνεις GROUP BY. Μαλλον ειναι κώδικας generated απο κάποιο wizzard, ή gui builder, ε; σε τι βάση απευθύνεται αυτό; access, ms sql;
atsaloux Δημοσ. 13 Φεβρουαρίου 2009 Μέλος Δημοσ. 13 Φεβρουαρίου 2009 Καλησπέρα. Όχι δεν είναι generated. Εγώ το έγραψα αλλά πιθανόν να περιέχει και λάθος ή πλεονασμό. Σε MS Sql χρησιμοποιείται μέσω .NET. Αυτό που θέλω να κάνω είναι το εξής: Όπως είπα ο πίνακας Α έχει διάφορες εγγραφές σε και υπάρχει και κάποιο πεδίο του (α). Αντίστοιχα υπάρχει ένας πίνακας Β όπου έχει εγγραφές και σε αυτές τις εγγραφές υπάρχουν 3 πεδία όπου μπορούν να πάρουν τιμές από το (α). Αυτό που θέλω είναι το ερώτημα που θα επιστρέφει όλες τις τιμές του πεδίου α για τις οποίες υπάρχουν αντίστοιχες εγγραφές στον πίνακα Β σε ΟΠΟΙΟΔΗΠΟΤΕ από τα 3 πεδία που ανέφερα προηγουμένως καθώς επίσης και το πλήθος αυτών (count). Κατανοητός τώρα; Ευχαριστώ εκ των προτέρων.
bluejeans Δημοσ. 18 Φεβρουαρίου 2009 Δημοσ. 18 Φεβρουαρίου 2009 Χμ δηλαδή αν Α, Β οι πίνακες και a,b,c τα παιδία και κατάλαβα καλά θα σου αρκούσε κάτι σαν Select A.a From A, B Where A.a=B.a OR A.a=B.b OR A.a=B.c
tsipouro Δημοσ. 18 Φεβρουαρίου 2009 Δημοσ. 18 Φεβρουαρίου 2009 select A.a from A where exists (select 1 from B where B.a = A.a) or exists (select 1 from B where B.b = A.a) or exists (select 1 from B where B.c = A.a) Νομίζω είναι πιο γρήγορο
atsaloux Δημοσ. 18 Φεβρουαρίου 2009 Μέλος Δημοσ. 18 Φεβρουαρίου 2009 Χμ δηλαδή αν Α, Β οι πίνακες και a,b,c τα παιδία και κατάλαβα καλά θα σου αρκούσε κάτι σαν Select A.a From A, B Where A.a=B.a OR A.a=B.b OR A.a=B.c Χμμμμ... Σ'ευχαριστώ πολύ. Μάλλον το παίδευα περισσότερο απ' ότι έπρεπε... Με μία μικρή αλλαγή φαίνται να παίζει ρολόι! >Select distinct(A.a), count(A.a) From A, B Where A.a=B.a OR A.a=B.b OR A.a=B.c GROUP BY A.a Thanks a lot
tsipouro Δημοσ. 18 Φεβρουαρίου 2009 Δημοσ. 18 Φεβρουαρίου 2009 Τo distinct δε χρειάζεται, εφόσον χρησιμοποιείς group by
atsaloux Δημοσ. 18 Φεβρουαρίου 2009 Μέλος Δημοσ. 18 Φεβρουαρίου 2009 Τo distinct δε χρειάζεται, εφόσον χρησιμοποιείς group by Ναι σόρυ. Μου ξέφυγε καθώς έκανα δοκιμές ...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.