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

 

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

Ομαδοποίηση με βάση πεδία τιμών MS ACCES 2003

Îåêßíçóå áðü ôï ìÝëïò thodoros. Τελευταία δημοσίευση από το μέλος thodoros στις 27-07-2007, 20:43. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-07-2007, 22:06 33810

    Ομαδοποίηση με βάση πεδία τιμών MS ACCES 2003

    Σε MS Access 2003 έχω έναν πίνακα ο οποίος περιλαμβάνει Όνομα, Μισθό και επίπεδο (ανώτερο, κατώτερο, μέσο). Θέλω να δημιουργήσω ένα query το οποίο θα μου δίνει τον αριθμό των υπαλλήλων που έχουν μισθό πάνω από 1000, τον αριθμό των υπαλλήλων με μισθό πάνω από 2000 κλπ. Δεν έχω καταφέρει να δημιουργήσω αυτό το ερώτημα, καταφέρνω να δημιουργήσω μόνο μία ομάδα κάθε φορά (δηλαδή να μου δώσει τους υπαλλήλους με μισθό πάνω απο 1000, για τις υπόλοιπες κατηγορίες δεν μπορώ να δημιουργήσω το bracket). Μήπως μπορεί να βοηθήσει κάποιος;


    Live fast, die young
  •  26-07-2007, 06:19 33812 σε απάντηση της 33810

    Απ: Ομαδοποίηση με βάση πεδία τιμών MS ACCES 2003

    Στo module:

    Public Function GroupByValue(value As Double) As String
        If value < 1000 Then GroupByValue = "<1000"
        If value >= 1000 And value < 2000 Then GroupByValue = ">=1000 & <2000"
        If value >= 2000 And value < 3000 Then GroupByValue = ">=2000 & <3000"
        If value >= 3000 And value < 4000 Then GroupByValue = ">=3000 & <4000"
        If value >= 4000 Then GroupByValue = ">=4000"
    End Function

     

     Στο query:

    SELECT Count(Table.Id) AS CountOf, GroupByValue([Value]) AS Groups
    FROM [Table]
    GROUP BY GroupByValue([Value]);

     

    Result:

    CountOf Groups
    12 <1000
    6 >=1000 & <2000
    5 >=2000 & <3000
    1 >=3000 & <4000
    2 >=4000

    Αυτά Smile


    while (!dead) learn();
  •  26-07-2007, 09:01 33813 σε απάντηση της 33812

    Απ: Ομαδοποίηση με βάση πεδία τιμών MS ACCES 2003

    Γιώργος Μπακογιάννης:

    Public Function GroupByValue(value As Double) As String
        If value < 1000 Then GroupByValue = "<1000"
        If value >= 1000 And value < 2000 Then GroupByValue = ">=1000 & <2000"
        If value >= 2000 And value < 3000 Then GroupByValue = ">=2000 & <3000"
        If value >= 3000 And value < 4000 Then GroupByValue = ">=3000 & <4000"
        If value >= 4000 Then GroupByValue = ">=4000"
    End Function



    Τό ίδιο πράγμα χρησιμοποιώντας συνεχόμενα  IIf για να μην έχεις και εξωτερική  function π.χ.
    Group by  IIf(Value < 1000,IIf(value >= 2000 And value < 3000,">=1000 & <2000"),"<1000")

    Πάντως ο τρόπος του Γιώργου είναι πιο "αναγνώσιμος" από αυτόν.

    Manos
  •  27-07-2007, 20:43 33872 σε απάντηση της 33812

    Απ: Ομαδοποίηση με βάση πεδία τιμών MS ACCES 2003

    Ευχαριστώ πολύ, η απάντηση ήταν άψογη.
    Live fast, die young
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems