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

 

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

Transpose στηλών σε γραμμές

Îåêßíçóå áðü ôï ìÝëïò Dimitris Papadimitriou. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 02-02-2007, 13:05. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  02-02-2007, 10:10 24412

    Transpose στηλών σε γραμμές

    Είμαι σε φάση μιας πολύ βαρετής και δύσκολης μεταφοράς δεδομένων από μια πολύ παλιά βάση (access 97) με πολλές σχεδιαστικές ατέλειες σε μια καινούργια στο SQL Server 2005. Η βάση περιέχει μερικούς πίνακες που περιέχουν συσχετιζόμενους πίνακες 2 σε 1! π.χ. το κλασσικό παράδειγμα order-order details είναι κάπως έτσι:

    OrderID   CustomerID   Date    OrderItem1    OrderItem1Count    OrderItem2    OrderItem2Count  κλπ.

    Για να μετατρέψω τα order items σε κανονικό πίνακα που έχει 3 στήλες (OrderID, OrderItem, OrderCount) κάνω το εξής:

    SELECT OrderID, OrderItem1, OrderItem1Count FROM Orders
    UNION
    SELECT OrderID, OrderItem2, OrderItem2Count FROM Orders

    Υπάρχει κάποιος πιο elegant τρόπος; Π.χ. κάποια εντολή που να κάνει transpose των στηλών σε γραμμές...

    Τα δεδομένα τα έχω μεταφέρει πρώτα σε sql server και μετά εκτελώ αυτά τα queries, έτσι ώστε να μην έχω περιορισμούς από την access.

     


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  02-02-2007, 13:05 24420 σε απάντηση της 24412

    Απ: Transpose στηλών σε γραμμές

    Υπάρχει οι εντολές PIVOT/UNPIVOT. Το θέμα έχει συζητηθεί αρκετά στο παρελθόν και ο Kelman έχει γράψει και κάποια άρθρα στο blog του
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems