Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   SQL SUM & MAX (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/5548-sql-sum-max.html)

parara 28-05-20 01:15

SQL SUM & MAX
 
Καλημέρα,

από τον πίνακα salary

id name salaryt

2 Dionisis 22000
3 Vasilis 27000
2 Dionisis 19000
1 Kostas 11000
3 Vasilis 17000

πως μπορώ να πάρω την μεγαλύτερη τιμή από το άθροισμα των ομοίων id
στο παραπάνω παράδειγμα να έχω
Dionisis 41000


ευχαριστώ

kapetang 28-05-20 12:36

Καλημέρα


Θα μπορούσες να χρησιμοποιήσεις ένα ερώτημα με την παρακάτω μορφή:


Κώδικας:

SELECT TOP 1 tbl.Id, tbl.fname, Sum(tbl.salaryt) AS sumSal
FROM tbl
GROUP BY tbl.Id, tbl.fname
ORDER BY Sum(tbl.salaryt) DESC;


parara 28-05-20 12:43

Ευχαριστώ
 
Ευχαριστώ,

μπορείς να μου εξηγήσεις τον ρόλο της DESC.

εγώ προσπαθούσα να το κάνω με την max

kapetang 28-05-20 13:55

Ταξινομεί τις εγγραφές σε φθίνουσα σειρά ως προς τα αθροίσματα (από το μεγαλύτερο άθροισμα προς το μικρότερο).

parara 28-05-20 14:01

πρόβλημα σε MySql
 
Ωστόσο δε δουλεύει σε MySQL
πρόβλημα λέει στη γραμμή 1 , δεν αναγνωρίζει την TOP

σε access 2003 δουλεύει μια χαρά

kapetang 28-05-20 14:55

Αφαίρεσε το Top 1 και το ερωτηματικό μετά το DESC και πρόσθεσε στο ερώτημα τη γραμμή LIMIT 1 ; Ίσως δουλέψει.

Διαφορετικά θα πρέπει να ψάξεις την αντίστοιχη πρόταση της mySQL.

parara 28-05-20 16:34

Ναι σωστά αυτό έκανα αμέσως μετά. Εψαξα να βρω την αντίστοιχη για την TOP και την αντικατέστησα. Αυτή είναι η LIMIT

ευχαριστώ και πάλι.

kapetang 28-05-20 16:51

Να είσαι καλά Διονύση και καλή συνέχεια.

parara 29-05-20 08:41

id name salaryt B_name_id B_name

2 Dionisis 22000 01 Papado
3 Vasilis 27000 02 Anastaso
2 Dionisis 19000 03 Georgiou
1 Kostas 11000 04 Didaska
3 Vasilis 17000 05 Raptis


Τώρα πρόσθεσα ακόμη δύο στήλες στον πίνακα salary την στήλη B_name_id και την B_name και προσπαθώ για το όνομα της πρώτης στήλης name που έχει το μεγαλύτερο αθροιστικά salary , να μου επιστρέφει και τα ονόματα

δηλαδή από τα παραπάνω να έχω

2 Dionisis 41000 Papado Raptis

όσες δοκιμές έχω κάνει πάντα μου επιστρέφει ένα μόνο όνομα , το πρώτο

Tasos 29-05-20 10:28

Αγαπητέ Διονύση (συγγνώμη για το Γιάννη) ,
είναι εγκληματικό να χρησιμοποιούμε δεσμευμένα ονόματα όπως το Name ως ονόματα πεδίων!! Έστω ότι ο πίνακας ονομάζεται Table1 και το πεδίο Name Fullname.

Ο παρακάτω παρακάτω κώδικας μπορεί να μπει σε ένα ερώτημα σε προβολή SQL:

Κώδικας:

SELECT TOP 1 Table1.FullName, Sum(Table1.Salary) AS SumOfSalary
FROM Table1
GROUP BY Table1.FullName
ORDER BY Sum(Table1.Salary) DESC;

και επιστρέφει το ζητούμενο.

Τάσος


Η ώρα είναι 17:43.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2