Προς το περιεχόμενο

SQL Query Syntax


atsaloux

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους.

Μια μικρή βοήθεια με ένα 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.

 

Ευχαριστώ εκ των προτέρων.

Δημοσ.
...να βγάζει αποτελέσματα λαμβάνοντας υπ' όψιν και τις τιμές των 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;

Δημοσ.

Καλησπέρα.

Όχι δεν είναι generated. Εγώ το έγραψα αλλά πιθανόν να περιέχει και λάθος ή πλεονασμό. Σε MS Sql χρησιμοποιείται μέσω .NET.

 

Αυτό που θέλω να κάνω είναι το εξής:

Όπως είπα ο πίνακας Α έχει διάφορες εγγραφές σε και υπάρχει και κάποιο πεδίο του (α).

Αντίστοιχα υπάρχει ένας πίνακας Β όπου έχει εγγραφές και σε αυτές τις εγγραφές υπάρχουν 3 πεδία όπου μπορούν να πάρουν τιμές από το (α). Αυτό που θέλω είναι το ερώτημα που θα επιστρέφει όλες τις τιμές του πεδίου α για τις οποίες υπάρχουν αντίστοιχες εγγραφές στον πίνακα Β σε ΟΠΟΙΟΔΗΠΟΤΕ από τα 3 πεδία που ανέφερα προηγουμένως καθώς επίσης και το πλήθος αυτών (count).

 

Κατανοητός τώρα;

Ευχαριστώ εκ των προτέρων.

Δημοσ.

Χμ δηλαδή αν Α, Β οι πίνακες και 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 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)

 

Νομίζω είναι πιο γρήγορο

Δημοσ.
Χμ δηλαδή αν Α, Β οι πίνακες και 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 :)

Αρχειοθετημένο

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

  • Δημιουργία νέου...