Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Ερώτημα Count;

Îåêßíçóå áðü ôï ìÝëïò Firebrand. Τελευταία δημοσίευση από το μέλος Firebrand στις 24-06-2012, 20:48. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-06-2012, 19:32 70727

    Ερώτημα Count;

    Καλησπέρα,

    Έχω έναν πίνακα με ομάδες εγγραφών.
    Συγκεκριμένα, το πεδίο PatentName παρουσιάζεται μέσα στον πίνακα 2, 3 4, 5, ...., Ν φορές.
    Εννοώ ότι 2, 3, 4 .... εγγραφές κάθε φορά μπορεί να έχουν το ίδιο PatentName.
    Το παρακάτω παράδειγμα νομίζω ότι θα σας διαφωτίσει:

    ID  PatentName Designer
    1     A                   B
    2     A                   G
    3     B                   A
    4     B                   H
    5     B                   J
    6     C                  Q
    7     C                  T
    8     C                  F
    9     C                  X
    10   D                  J
    11   D                  L

    κ.ο.κ.

    Θέλω κάθε φορά που εκτελώ το ερώτημα μου να εμφανίζονται μόνο εκείνες οι εγγραφές για τις οποίες ισχύει ότι το PatentName εμφανίζεται Ν φορές.
    Δηλαδή αν Ν = 2 τότε θέλω το αποτέλεσμα να είναι:

    ID  PatentName Designer
    1     A                   B
    2     A                   G
    10   D                  J
    11   D                  L

    Τα φώτα σας παρακαλώ. Προσπαθώ με την count αλλά μάλλον κάτι δεν έχω καταλάβει για τον τρόπο με τον οποίο λειτουργεί.
    Ευχαριστώ πολύ.
  •  24-06-2012, 20:12 70728 σε απάντηση της 70727

    Απ: Ερώτημα Count;

    Νομίζω πως χρειάζεσαι το HAVING clause. Το ερώτημα σου θα μπορούσε να είναι κάπως έτσι:
    SELECT tablename.*, tbl_patentcount.patentcount
    FROM tablename,
    (SELECT patentname, COUNT(*) AS patentcount
    FROM tablename
    GROUP BY patentname 
    HAVING COUNT(*) = 2) AS tbl_patentcount
    WHERE tablename.patentname=tbl_patentcount.patentname
    Δεν το έτρεξα οπότε κάτι μπορεί να ξέφυγε, αλλά νομίζω σου δίνει αυτό που θέλεις.

    Τάσος Καραγιάννης

    Baby debugging steps...
  •  24-06-2012, 20:30 70729 σε απάντηση της 70728

    Απ: Ερώτημα Count;

    Κάπου πρέπει να λείπει μια παρένθεση
  •  24-06-2012, 20:32 70730 σε απάντηση της 70729

    Απ: Ερώτημα Count;

    Firebrand:
    Κάπου πρέπει να λείπει μια παρένθεση


    Sorry. Δικό μου λάθος
  •  24-06-2012, 20:48 70733 σε απάντηση της 70728

    Απ: Ερώτημα Count;

    tasos:
    Νομίζω πως χρειάζεσαι το HAVING clause. Το ερώτημα σου θα μπορούσε να είναι κάπως έτσι:
    SELECT tablename.*, tbl_patentcount.patentcount
    FROM tablename,
    (SELECT patentname, COUNT(*) AS patentcount
    FROM tablename
    GROUP BY patentname 
    HAVING COUNT(*) = 2) AS tbl_patentcount
    WHERE tablename.patentname=tbl_patentcount.patentname
    Δεν το έτρεξα οπότε κάτι μπορεί να ξέφυγε, αλλά νομίζω σου δίνει αυτό που θέλεις.


    Worked like a charm.
    Kudos, my friend.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems