Πώς μπορείτε να δημιουργήσετε ένα ερώτημα διασταύρωσης με πολλά πεδία τιμών

Μέτρια: Απαιτεί βασικές μακροεντολών, κωδικοποίησης και διαλειτουργικότητας δεξιότητες.

Αυτό το άρθρο ισχύει μόνο για μια βάση δεδομένων της Microsoft Access (.accdb και .mdb).
Για μια έκδοση της Microsoft Access 2000 αυτού του άρθρου, ανατρέξτε στην ενότητα
209143 .
Για μια έκδοση αυτού του άρθρου Microsoft Access 97, ανατρέξτε στο θέμα
109939 .

Σύνοψη

Σε ένα ερώτημα διασταύρωσης πινάκων της Microsoft Access, μπορείτε να καθορίσετε μόνο ένα πεδίο ή υπολογισμό ως τιμή. Εάν θέλετε, μπορείτε να εμφανίσετε περισσότερες από μία τιμές στο ερώτημα.

Το ακόλουθο παράδειγμα εμφανίζει δύο στήλες πληροφοριών ανά εταιρεία, ένα πλήθος από τον αριθμό των παραγγελιών, και τα σύνολα παραγγελιών για κάθε έτος:
   Company Name  1998 Orders  1998 Total  1999 Orders  1999 Total
--------------------------------------------------------------
ABC Company 12 $855.00 15 $1010.25
XYZ Company 1017 $22045.57 1050 $25345.29

Αυτός ο τύπος ερωτήματος ονομάζεται μερικές φορές ένα πεδίο πολλών τιμών ερώτημα.

Περισσότερες πληροφορίες

Για να δημιουργήσετε ένα ερώτημα διασταύρωσης πεδίο πολλών τιμών, πρέπει να δημιουργήσετε ένα ερώτημα διασταύρωσης ξεχωριστά για κάθε τιμή που θέλετε να υπολογίσετε. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε ένα ερώτημα επιλογής για να συμμετάσχετε σε αυτά τα ερωτήματα διασταύρωσης για να εμφανίσετε τα αποτελέσματα που θέλετε.

Το ακόλουθο παράδειγμα χρησιμοποιεί το δείγμα βάσης δεδομένων Northwind.mdb, για να δημιουργήσετε ένα ερώτημα που εμφανίζει αποτελέσματα παρόμοια με το παράδειγμα στην ενότητα "Περίληψη" αυτού του άρθρου. Εμφανίζει τον αριθμό των πωλήσεων και συνολικά για κάθε έτος για κάθε εταιρεία.
  1. Ανοίξτε το δείγμα βάσης δεδομένων Northwind.mdb και, στη συνέχεια, δημιουργήστε το ακόλουθο ερώτημα διασταύρωσης που βασίζεται σε παραγγελίες, λεπτομέρειες παραγγελιών και των πινάκων πελάτες:
       Query: Order Total
    ------------------
    Type: Crosstab Query
    Join: Customers.[CustomerID] <-> Orders.[CustomerID]
    Join: Orders.[OrderID] <-> Order Details.[OrderID]

    Field: CompanyName
    Table Name: Customers
    Total: Group By
    Crosstab: Row Heading

    Field: Expr1: Year([OrderDate]) & " " & "Order Total"
    Table Name:
    Total: Group By
    Crosstab: Column Heading

    Field: Expr2: Sum(CCur([UnitPrice]*[Quantity]*(1-[Discount])))
    Table Name:
    Total: Expression
    Crosstab: Value

  2. Αποθηκεύστε αυτό το ερώτημα ως Σειρά σύνολο.
  3. Δημιουργήστε το ακόλουθο ερώτημα διασταύρωσης που βασίζεται σε πίνακες πελάτες και παραγγελίες:
       Query: Order Count
    ------------------
    Type: Crosstab Query
    Join: Customers.[CustomerID] <-> Orders.[CustomerID]

    Field: CompanyName
    Table Name: Customers
    Total: Group By
    Crosstab: Row Heading

    Field: Expr1: Year([OrderDate]) & " " & "Order Count"
    Table Name:
    Total: Group By
    Crosstab: Column Heading


    Field: OrderID
    Table Name: Orders
    Total: Count
    Crosstab: Value

  4. Αποθηκεύστε αυτό το ερώτημα ως Σειρά μέτρηση.
  5. Δημιουργήστε ένα ερώτημα που βασίζεται σε συνολική την παραγγελία και τα ερωτήματα διασταύρωσης σειρά Count. Χρησιμοποιήστε το CompanyName, η συνολική παραγγελία και σειρά πλήθος πεδίων για τα έτη της οποίας θέλετε να προβάλετε τα αποτελέσματα. Το ακόλουθο παράδειγμα χρησιμοποιεί τα τελευταία δύο έτη της συνολικής παραγγελίας και του πλήθους παραγγελία στη Microsoft Access.
       Query: Multiple Values
    ----------------------
    Join: Order Total.[CompanyName] <-> Order Count.[CompanyName]

    Field: CompanyName
    Table Name: Order Count

    Field: 1997 Order Count
    Table Name: Order Count

    Field: 1997 Order Total
    Table Name: Order Total

    Field: 1998 Order Count
    Table Name: Order Count

    Field: 1998 Order Total
    Table Name: Order Total

  6. Όταν εκτελείτε το ερώτημα πολλές τιμές, θα δείτε έναν πίνακα που μοιάζει με τον ακόλουθο πίνακα:
                             1997 Order  1997 Order  1998 Order  1998 Order
    Company Name Count Total Count Total
    --------------------------------------------------------------------
    Alfred's Futterkiste 3 $2,022.50 3 $2,022.50
    Ana Trujillo 2 $799.75 1 $514.10
    Antonio Moreno 5 $5,960.78 1 $660.00

    ΣΗΜΕΊΩΣΗ: πρέπει να προσθέσετε το όνομα του πίνακα με την παράσταση, εάν το πεδίο που έχει καθοριστεί για τη συνένωση είναι ένα πεδίο σε περισσότερους από έναν από τους πίνακες που συμμετέχει στο ερώτημα. Για παράδειγμα, στο βήμα 1, θα αλλάξετε:
       Year([OrderDate]) & " " & "Order Total"

    Για να:
       Year([Orders].[OrderDate]) & " " & "Order Total"

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

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τα ερωτήματα διασταύρωσης, κάντε κλικ στο κουμπί Βοήθεια της Microsoft Access στο μενού Βοήθεια , πληκτρολογήστε ερωτήματα διασταύρωσης στο Βοηθό του Office ή τον "Οδηγό απαντήσεων" και, στη συνέχεια, κάντε κλικ στο κουμπί Αναζήτηση για να προβάλετε τα θέματα που επιστρέφονται.
Ιδιότητες

Αναγνωριστικό άρθρου: 304458 - Τελευταία αναθεώρηση: 21 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια