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

 

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

Προβλημα με query!!!SELF JOIN???

Îåêßíçóå áðü ôï ìÝëïò lskostas. Τελευταία δημοσίευση από το μέλος KelMan στις 02-07-2007, 18:15. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-06-2007, 17:32 33255

    Προβλημα με query!!!SELF JOIN???

    Eχω αυτην την κατασταση

                 __item no___    ___document no___    ___value___          

    1             100                       invoice                     500   

    2             100                       pac                        7543

    3             101                      invoice                       600

    4             101                      pac                          8400

    5             102                      invoice                       400

    6             102                      pac                           7000

    Oπως βλεπεται για καθε [item_no] εχω 2 διαφορετικα document_no και τις αντιστοιχες τιμες τους.

    Πως μπορω να εχω το παρακατω αποτελεσμα?????

     Δηλαδη query που να μεταφερει τις  τιμες του pac ΚΑΙ στο invoice αλλα για καθε item_no ξεχωριστα???? 

    __item no___    ___document no___    ___value___          

    1             100                       invoice                   7543  

    2             100                       pac                        7543

    3             101                      invoice                       8400

    4             101                      pac                          8400

    5             102                      invoice                       7000

    6             102                      pac                           7000

    δωστε και σωστε παιδια...self join σκεφτομουν αλλα ΠΩς????Να αναφερω οτι τα [item_no] ειναι πολλα και για καθε ενα αντιστοιχουν αυτα τα 2 πεδια που βλεπετε.

     

    Ευχαριστω για τυχον απαντησεις

     

     

     


    :D
  •  28-06-2007, 17:55 33256 σε απάντηση της 33255

    Απ: Προβλημα με query!!!SELF JOIN???

    Δες αν σε βολεύει αυτό:

    SELECT T1.ItemNo, T1.DocumentNo, T1.Value
    FROM table1 AS T1, table1 AS T2
    WHERE T1.ItemNo=T2.ItemNo And T1.DocumentNo<>T2.DocumentNo AND T1.Value > T2.Value
    UNION
    SELECT T1.ItemNo, T1.DocumentNo, T2.Value
    FROM table1 AS T1, table1 AS T2
    WHERE T1.ItemNo=T2.ItemNo And T1.DocumentNo<>T2.DocumentNo AND T1.Value > T2.Value;

    Έκανα κάποιες δοκιμές και σε μένα δούλεψε, αν δεν μου έχει ξεφύγει κάτι θα είσαι ok.Smile

    Edit: Διόρθωσα αυτό που ξέφυγε!

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

    Baby debugging steps...
  •  28-06-2007, 17:56 33257 σε απάντηση της 33255

    Απ: Προβλημα με query!!!SELF JOIN???

    αν υποθέσουμε ότι ο πίνακάς σου ονομάζεται test

    1
    2
    3
    4
    5
    SELECT     a.itemno,b.documentno,a.[value]
    FROM test as a
    INNER JOIN
    test as b
    ON a.itemno = b.itemno AND a.documentno = 'pac'

    (άσχετο με την ερώτησή σου, αλλά σαν απλή εξάσκησή μου σκεφτόμουνα πώς θα ήτανε καλύτερο το schema) Παρ'όλα αυτά, μια καλύτερη και πιο normalized σχεδίαση θα ήταν να έχεις  έναν πίνακα (έστω Α) μόνο με τα item_no σαν primary keys, και έναν πίνακα (έστω Β) με ένα int σαν primary key, το itemno σαν foreign, και το document_no και το value σαν πεδία. Επίσης, θα μπορούσες να έχεις έναν πίνακα με τα "invoice" και "pac" (παρέα με ένα primary key έναν tinyint), και αυτό το primary key να το έβαζες στο πεδίο document_no του πίνακα Β.

    Smile


    Dimitris-Ilias Gkanatsios
    Developer Evangelist, Microsoft Hellas

    My Blog
    StudentGuru
    Twitter
    Facebook
  •  28-06-2007, 18:12 33259 σε απάντηση της 33255

    Απ: Προβλημα με query!!!SELF JOIN???

    Αυτό σου κάνει;

    select a.itemNo, a.documentNo, b.value from mytable a
    inner join mytable b ON a.itemNo=b.itemNo AND b.documentNo='pac'


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  28-06-2007, 18:32 33262 σε απάντηση της 33259

    Απ: Προβλημα με query!!!SELF JOIN???

    εχω καταφερει να κανω select με σωστα αποτελεσματα...

    το προβλημα ειναι τωρα στο update του πινακα

    καθοτι

    Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

     

    το query ειναι

     update [Trade Status$Value Entry]
     set [ITEM LEDGER ENTRY NO_]=
    (SELECT A.[ITEM NO_],A.[DOCUMENT NO_],B.[DOCUMENT NO_],A.[ITEM LEDGER ENTRY NO_],
    B.[ITEM LEDGER ENTRY NO_]
    FROM  [Trade Status$Value Entry] AS A
    INNER JOIN
    [Trade Status$Value Entry] AS B
    ON A.[ITEM NO_]=B.[ITEM NO_] AND
    A.[DOCUMENT NO_]='PAC02-000009'
    AND B.[DOCUMENT NO_]='INV02-000003'
    )

    Αν βγαλετε ακρη...

    Παντως  ευχαριστω τον καθενα σας πολυ!!!


    :D
  •  28-06-2007, 18:48 33263 σε απάντηση της 33262

    Απ: Προβλημα με query!!!SELF JOIN???

    Δεν μπορώ να καταλάβω ακριβώς τι κάνει το query γιατί είναι λίγο πολύπλοκο, αλλά όταν κάνεις

     update [Trade Status$Value Entry]  set [ITEM LEDGER ENTRY NO_]= (SELECT .....)

    τότε το select πρέπει να επιστρέφει μία μόνο στήλη. Αυτό λέει και το error. Only one expression can be specified in the select list.


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  28-06-2007, 20:39 33266 σε απάντηση της 33255

    Απ: Προβλημα με query!!!SELF JOIN???

    UPDATE MyTable T1
    SET [value] = T2.[value]
    FROM MyTable T1
      INNER JOIN MyTable T2
        ON T1.item_no=T2.item_no AND
           T1.document_no='invoice' AND T2.document_no='pac'


    Νατάσα Μανουσοπούλου
  •  02-07-2007, 17:04 33330 σε απάντηση της 33266

    Απ: Προβλημα με query!!!SELF JOIN???

    Nαι ειχατε δικιο για το query που εγραψα παραπανω...

    Το διορθωσα και πετυχε!!!   Cool

    Αυτα ειναι...

    Σας thank very πολυBig Smile

     


    :D
  •  02-07-2007, 18:15 33331 σε απάντηση της 33330

    Απ: Προβλημα με query!!!SELF JOIN???

    Μην ξεχάσεις να κλείσεις το θέμα με το "Κατάσταση Ενότητας" και να σημειώσεις τις απαντήσεις που σε βοήθησαν με το "Σημείωση ως απάντησης"


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems