Εμφάνιση ενός μόνο μηνύματος
  #8  
Παλιά 16-11-18, 22:13
Το avatar του χρήστη nasos23
nasos23 Ο χρήστης nasos23 δεν είναι συνδεδεμένος
Όνομα: ΝΑΣΟΣ
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-10-2010
Μηνύματα: 430
Προεπιλογή

Καλησπέρα Σάκη
Παράθεση:
Πως γίνεται να παίρνω στο πεδίο TOTAL στο ερώτημα QR_RANKcateg το σύνολο από τα
3 μεγαλύτερα σκορ ανά κατηγορία και όχι από όλα τα σκορ;
Η πρότασή μου.
1. Δημιουργούμε ένα ερώτημα συνένωσης. πχ."UNION_SCORE"
Κώδικας:
SELECT SIGNUP.ID_SIGN, SIGNUP.CATEGORY, SIGNUP.NAMES, SIGNUP.SCORE1 AS SCORE
FROM SIGNUP;
union
SELECT  SIGNUP.ID_SIGN, SIGNUP.CATEGORY, SIGNUP.NAMES, SIGNUP.SCORE2 AS SCORE
FROM SIGNUP;
UNION SELECT SIGNUP.ID_SIGN, SIGNUP.CATEGORY, SIGNUP.NAMES, SIGNUP.SCORE3 AS SCORE
FROM SIGNUP;
2. Στη συνέχεια δημιουργούμε ένα δεύτερο ερώτημα πχ "TOP3_SCORES" όπου αντλούμε τα
τρία μεγαλύτερα σκορ καθε κατηγορίας.
Κώδικας:
SELECT t.ID_SIGN, t.NAMES, t.CATEGORY, t.SCORE
FROM UNION_SCORE AS t
WHERE (((t.SCORE) In (SELECT TOP 3 SCORE
    FROM UNION_SCORE
   WHERE CATEGORY = t.CATEGORY 
   ORDER BY SCORE DESC
)))
ORDER BY t.SCORE DESC;
3.Τρίτο ερώτημα για το σύνολο των επιμέρους σκόρ "TOTAL_TOP3_SCORES"
Κώδικας:
SELECT TOP3_SCORES.ID_SIGN, SIGNUP.NAMES, SIGNUP.CATEGORY, Sum(TOP3_SCORES.SCORE) AS TOTAL
FROM TOP3_SCORES INNER JOIN SIGNUP ON TOP3_SCORES.ID_SIGN = SIGNUP.ID_SIGN
GROUP BY TOP3_SCORES.ID_SIGN, SIGNUP.NAMES, SIGNUP.CATEGORY;
4. Και για το ερώτημά σου "QR_RANKcateg" κανε τις ανάλογες προσαρμογές.

ΥΓ. Σίγουρα θα υπάρχουν και καλύτερες προτάσεις.
__________________
Φιλικά, Νάσος
Απάντηση με παράθεση