Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Ερωτήματα ] Πολύπλοκο ερώτημα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/4082-poliploko-erotima.html)

Πανος_ 02-03-16 21:44

Πολύπλοκο ερώτημα
 
Καλησπέρα σε όλους,

Θα ήθελα να ρωτήσω το εξής.

Είναι δυνατόν από ένα πίνακα όπως είναι ο πρώτος παρακάτω, όπου ΤΑ & ΤΒ είναι π.χ. οι τιμές των ομάδων και R είναι τα αποτελέσματα, να δημιουργηθεί ένας νέος πίνακας όπου Α θα είναι οι τιμές των ομάδων και στις επόμενες 3 στήλες θα γίνεται η καταμέτρηση των τιμών της στήλης R του πρώτου πίνακα;

Δυσκολεύομαι γιατί με το Clause WHERE μπορώ να εμφανίσω μόνο αυτά που έχουν την τιμή 1 π.χ.

Ευχαριστώ,

ΤA|ΤB| R
---+--+---
1 | 2 | 1
1 | 2 | Χ
1 | 2 | 2
1 | 2 | 1
1 | 2 | Χ

A | 1 | X | 2 |
--+--+---+---+
1 | 2 | 2 | 1 |
2 | 2 | 2 | 1 |

kapetang 03-03-16 16:03

Καλησπέρα

Πάνο, χρησιμοποίησε το βοηθητικό ερώτημα ένωσης:

Κώδικας:

SELECT Table1.TA as A FROM Table1
UNION
SELECT Table1.TB as A FROM Table1;

και το τελικό:

Κώδικας:

SELECT qryHLP.A, DCount("[R]","[Table1]","[R]='1'") AS 1, DCount("[R]","[Table1]","[R]='X'") AS X,
DCount("[R]","[Table1]","[R]='2'") AS 2 FROM qryHLP;

Φιλικά/Γιώργος

Πανος_ 03-03-16 20:58

1 Συνημμένο(α)
Καλησπέρα Γιώργο και ευχαριστώ πάρα πολύ για τη βοήθεια.

Η απάντηση αυτή μετράει το σύνολο των σημείων στη στήλη και παρόλο που φέρνει όλες τις ομάδες, οι τιμές των αποτελεσμάτων είναι για κάθε ομάδα ίδιες. Δες το συνημμένο αρχείο. Είμαστε δηλαδή ένα βήμα πριν το αποτέλεσμα αλλά δεν είναι ακόμα σωστό.
Εγώ θέλω για κάθε τιμή της στήλης Α να έχω τα αποτελέσματα που αντιστοιχούν σε αυτή.

kapetang 03-03-16 22:06

Πάνο, είμαι άσχετος με τα ποδοσφαιρικά.

Ανέβασες ένα παράδειγμα και ζήτησες «στις επόμενες 3 στήλες θα γίνεται η καταμέτρηση των τιμών της στήλης R του πρώτου πίνακα».

Δε ζήτησες καταμέτρηση των τιμών της στήλης R, κατά ομάδα.

Δεν ξέρω, κάθε τιμή (1, X, 2) της στήλης R του πίνακα σε ποια από τις δύο ομάδες ανήκει.

kapetang 04-03-16 08:55

Καλημέρα

Πάνο, αν ζητάς το πλήθος των νικών (1), των ισοπαλιών (X) και των ηττών (2) κάθε ομάδας, χρησιμοποίησε το παρακάτω ερώτημα:

Κώδικας:

SELECT qryHLP.A, DCount("*","[Table1]","([TA]=" & [A] & " And [R]='1') OR ([TB]=" & [A] & " And  [R]='2')") AS 1,
DCount("*","[Table1]","([TA]=" & [A] & " And [R]='X') OR ([TB]=" & [A] & " And  [R]='X')") AS X,
DCount("*","[Table1]","([TA]=" & [A] & " And [R]='2') OR ([TB]=" & [A] & " And  [R]='1')") AS 2
FROM qryHLP;

Σημειώνω ότι, αν αυτό είναι το ζητούμενο, η τελευταία γραμμή στο δεύτερο πίνακα του παραδείγματός σου θα ήταν: 2 | 1 | 2 | 2 | (η ομάδα 2 έχει 1 νίκη , 2 ισοπαλίες και 2 ήττες).

Φιλικά/Γιώργος

Πανος_ 04-03-16 10:36

Καλημέρα Γιώργο,

Σε ευχαριστώ πάρα πολύ για τη βοήθεια και ζητώ συγνώμη αν δεν το διευκρίνισα σωστά.

Σκοπός μου είναι αυτό ακριβώς, δηλαδή να μπορώ να καταμετρήσω ένα απο τα τρία αποτελέσματα για κάθε μοναδική τιμή της πρώτης στήλης (όπου θα περολαμβάνει τις ομάδες γκρουπαρισμένες).

Θα δοκιμάσω το απόγευμα τον κώδικά σου και θα επανέλθω.

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

Πανος_ 04-03-16 20:42

1 Συνημμένο(α)
Καλησπέρα Γιώργο,

Εμφανίζει το παρακάτω μήνυμα που φαίνεται στην εικόνα. Καταλαβαίνεις τι είναι αυτό που λείπει;

kapetang 04-03-16 21:17

Δε φαίνεται καλά το μήνυμα.

Μάλλον λείπει μία παρένθεση.

Οι παρενθέσεις αποτελούν ζευγάρια {()}.

Στο τέλος πρέπει να υπάρχει και παρένθεση {)}, που κλείνει τη συνάρτηση Dcount.

Δες και την έκφραση:

"([Home]='" & [Όνομα πεδίου A] & "' And [FT_RS]='1') OR ([Away]='" & [Όνομα πεδίου A] & "' And [FT_RS]='2')")

Πανος_ 05-03-16 09:36

Ευχαριστώ Γιώργο,

Διαβάζω για τη συνάρτηση και πιστεύω θα το βρω. Μια ακόμα ερώτηση. Μπορώ να βάλω όσες DCOUNT θέλω και επίσης μπορεί ένα κριτήριο να είναι παραμετροποιήσιμο; π.χ. η ημερομηνία;

Πανος_ 05-03-16 10:10

Βρήκα τι έφταιγε στον αρχικό τύπο. Είχες δίκο. Έλειπε ένα (') στο όνομα του πεδίου.

Έτρεξε και είναι οκ. Το πρόβλημα είναι ότι σκάει η Access... Δεν ξέρω γιατί αλλά κολλάει το σύμπαν... Είναι λογικό;


Η ώρα είναι 14:03.

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


Search Engine Optimization by vBSEO 3.3.2