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

 

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

UPDATE Table FROM Table

Îåêßíçóå áðü ôï ìÝëïò Panos Kousidis. Τελευταία δημοσίευση από το μέλος Panos Kousidis στις 09-10-2007, 16:58. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-10-2007, 11:45 35957

    UPDATE Table FROM Table

    Καλημέρα σας,
    ήθελα να σας ρωτήσω πώς γίνεται το εξής:
    Έχω 2 πίνακες σε access και θέλω να κάνω κάτι που περιγράφεται εύκολα με την ακόλουθη (λάθος) εντολή
    UPDATE Table1 SET Column1=Table2.Column1 WHERE Table1.Column2=Table2.Column2

    Μπορείτε να μου πείτε ποια θα πρέπει να είναι η σωστή σύνταξη της SQL γιατί αυτή είναι προφανώς λάθος, απλά είναι κατανοητή :)

    Panos
  •  08-10-2007, 12:14 35959 σε απάντηση της 35957

    Απ: UPDATE Table FROM Table

    Βρήκα την ακόλουθη λύση στο ίντερνετ εδώ, που μου φαίνεται λογική αλλά δε μου δουλεύει..
    Μου βγάζει η access το μήνυμα : "Operation must use an updateable query". Έψαξα για αυτό το σφάλμα αλλά βρήκα ότι αυτό παρουσιάζεται όταν πάω να αλλάξω την τιμή σε ένα πεδίο που δεν επιτρέπεται αλλά το διπλοτσέκαρα και το πεδίο που θέλω να αλλάξω είναι ένας απλός αριθμός

    UPDATE suppliers   
    SET supplier_name =   ( SELECT customers.name
    FROM customers
    WHERE customers.customer_id = suppliers.supplier_id)
    WHERE EXISTS
    ( SELECT customers.name
    FROM customers
    WHERE customers.customer_id = suppliers.supplier_id);

    Panos
  •  08-10-2007, 13:26 35963 σε απάντηση της 35959

    Απ: UPDATE Table FROM Table

    Για να έχεις WHERE χρειάζεσαι και ένα FROM. Έστω ότι έχεις δύο πίνακες, Order και Product, οι οποίοι συνδέονται μέσω ενός πεδίου ProductID (το προϊόν της παραγγελίας) και εσύ θέλλεις να γράψεις στον πίνακα το ποσό της παραγγελίας. Θα το γράψεις κάπως έτσι:

    UPDATE Orders
    SET Orders.Total_Price=Orders.Quantity*Products.Price
    FROM Products
    WHERE Orders.ProductID=Products.ProductID

    Κοίτα και το documentation της Update. Είναι πολύ καλύτερη πηγή από posts τα οποία μπορεί να μην έχουν σχέση με αυτό που ζητάς. Έχε υπόψη επίσης, ότι δεν γίνεται να μάθεις καμμία γλώσσα προγραμματισμού, πόσο μάλλον την SQL, χωρίς να διαβάσεις βιβλίο.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  09-10-2007, 10:00 36006 σε απάντηση της 35963

    Απ: UPDATE Table FROM Table

    Δεν είμαι νέος στην SQL και έχω συντάξει πιο πολύπλοκες εντολές της sql, proc,functions,joins,cursors κλπ. Στον SQL Server ξέρω πώς μπορεί να γίνει με cursors πχ αλλά η access δεν υποστηρίζει όλες της λειτουργίες του SQL γι' αυτό ρωτάω μήπως υπάρχει πιο απλός τρόπος και δεν τον ξέρω. Επίσης πιστεύω ότι η εντολή που έγραψα πριν θα δουλεύει στον SQL γιατί δεν το βρήκα από τυχαίο post σε forum αλλά σε site που φαίνεται να είναι σαν documentation της T-SQL. Το documentation της Update ήταν το πρώτο που κοίταξα, όχι επειδή δεν ήξερα πώς συντάσσεται αλλά μήπως μου ξέφυγε τίποτα.. Για να έχεις where δεν είναι απαραίτητο το from στην update καθώς συντάσσεται UPDATE ... SET ... WHERE ...

    Anyway, η εντολή που μου έγραψες δεν δουλεύει στην access, βγάζει Syntax Error (missing operator) μεταξύ του SET ... = ... και του FROM

    Panos
  •  09-10-2007, 15:09 36021 σε απάντηση της 36006

    Απ: UPDATE Table FROM Table

    UPDATE Table1, Table2

    SET Table1.Field1 = [Table2].[Field2]
    WHERE (([Table1].[ID1]=[Table2].[ID2]));

     

    --HTH--

  •  09-10-2007, 16:36 36028 σε απάντηση της 36006

    Απ: UPDATE Table FROM Table

    Στο αρχικό σου post δεν είχες αναφέρει ότι ψάχνεις για Access. Νόμιζα ότι αναφερόσουν σε SQL Server. Βλέπω τώρα ότι διόρθωσες το αρχικό post.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  09-10-2007, 16:58 36029 σε απάντηση της 36028

    Απ: UPDATE Table FROM Table

    Φίλε Παναγιώτη αν κοιτάξεις το edit time θα δεις ότι 11:45 έκανα το post και 11:47 το διόρθωσα, οπότε απλώς δεν πρόσεξες ότι αναφερόμουν σε access.

    Τέλος πάντων τέλος καλό όλα καλά, thanks spaceman, δούλεψε!

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