Count πρόβλημα δεν δίνει πάντα σωστά αποτελέσματα

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Kostas Vel
Δημοσιεύσεις: 10
Εγγραφή: 21 Ιουν 2011 13:54

Count πρόβλημα δεν δίνει πάντα σωστά αποτελέσματα

Δημοσίευση από Kostas Vel » 24 Ιαν 2013 11:09

Γεια σας,
εχω δυσκολιες για το πως η count δινει πάντα το σωστό αποτέλεσμα. Αλλοτε μου δίνει και αλλοτε οχι. Εχω την εντύπωση πως οταν εμφανίζω τον χρόνο (ημερομηνιες δηλαδη) όλα είναι εντάξει, όταν πάλι όχι δεν μου τα εμφανίζει όλα σωστά. Κάποιο πρόβλημα υπάρχει αλλά δεν μπορώ να βρω ποιο είναι ακριβώς.
Θέλω αν μπορείτε κάποια link ώστε να καταλάβω οριστικά τι ακριβώς συμβαίνει.
Ευχαριστώ πολύ.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Count πρόβλημα δεν δίνει πάντα σωστά αποτελέσματα

Δημοσίευση από dva_dev » 24 Ιαν 2013 16:20

Μπορείς να μας δειξεις ένα query που δίνει "σωστά" αποτελέσματα και ένα που δίνει "λάθος";

Άβαταρ μέλους
Kostas Vel
Δημοσιεύσεις: 10
Εγγραφή: 21 Ιουν 2011 13:54

Count πρόβλημα δεν δίνει πάντα σωστά αποτελέσματα

Δημοσίευση από Kostas Vel » 20 Φεβ 2013 13:19

Παρακάτω είναι το query που κάνω. Οι συνδέσεις με τα joins ειναι όλες σωστές
select s.id, s.PromoTitle, count(distinct sc.id),
sum(trx.amount), sum(trx.Amount*com.Percentage/100)
from silver s
join interest i on s.Id = i.silverId
join customertransaction trx on i.Id = trx.InterestId
join commission com on s.CommissionId = com.Id
join silvercertificate sc on i.Id = sc.InterestId
where i.SystemId='silvers.gr' and i.StatusCode in (301,302,312) and sc.StatusCode in (600,601,612,602)
and trx.StatusCode IN (401,1001,200,201)
group by s.id;
Τα απότελέσματα τα σωστά ΔΕΝ είναι αυτά που φέρνει αυτό το query.
To πρόβλημα δημιουργείται οταν βάζω αυτον τον πίνακα "silvercertificate"
αναγκαστικα για να δώσω την απάντηση το κάνω σε 2 στάδια , χωρις και με αυτό τον πίνακα.
Αυτό το query μου φέρνει σωστα τα count , αλλά μου χαλάει το sum
το group by εχω δοκιμάσει και αλλά εκτος από s.id αλλά δεν κάνουν τίποτα και αυτά
Κάτι με το count και το sum πρέπει να παίζει αλλά δεν μπορώ να το βρω.

Άβαταρ μέλους
nirvana
Δημοσιεύσεις: 241
Εγγραφή: 01 Σεπ 2005 18:28
Τοποθεσία: Αγ. Παρασκευή

Count πρόβλημα δεν δίνει πάντα σωστά αποτελέσματα

Δημοσίευση από nirvana » 20 Φεβ 2013 15:46

Sorry gia ta greeklish.

An kai den kserw akrivws ti pas na kaneis, den nomizw oti tha exeis tyxi. To provlima nomizw einai to distinct mazi me tis ypoloipes group functions. Des an exontas to count xwris distinct diorthwnei ta apotelesmata twn sum...

Tha elega oti prepei na xwriseis to query sta 2 (an kai nomizw oti an exeis tetoia queries, einai hint oti prepei na allakseis to design tis db - fysika auto den isxyei panta).

Άβαταρ μέλους
Kostas Vel
Δημοσιεύσεις: 10
Εγγραφή: 21 Ιουν 2011 13:54

Count πρόβλημα δεν δίνει πάντα σωστά αποτελέσματα

Δημοσίευση από Kostas Vel » 20 Φεβ 2013 16:07

Το distinct το είχα βγάλει αλλά δεν είχα αλλαγή.
To query είναι απλό αυτό που κάνει. Υπολογίζει για ποια ονοματα (s.id, s.PromoTitle) πόσοι εχουν αγοράσει κουπόνια (count(distinct sc.id)), και πόσο κάνουνε (sum(trx.amount)).
Σας είπα πως αν τα κάνω χωριστά όλα βγαίνουν μια χαρα, αν βάλω όμως το silvercertificate υπάρχει το πρόβλημα. Επίσης τα joins όλα ειναι σωστά.
Επίσης το s.PromoTitle το είχα βάλει κ αυτό στο group by αλλά δεν είχε αλλαγή
:cry:

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες