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

 

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

Πως μπορώ να κάνω update μόνο το ένα row??

Îåêßíçóå áðü ôï ìÝëïò jimenez. Τελευταία δημοσίευση από το μέλος beastie στις 04-12-2006, 18:06. Υπάρχουν 18 απαντήσεις.
Σελίδα 1 από 2 (19 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  04-12-2006, 13:33 21617

    Huh? [:^)] Πως μπορώ να κάνω update μόνο το ένα row??

        Έχω π.χ 2 εγγραφές με τιμή σε ένα πεδίο NULL. Δηλαδή,

    StartDateTime               EndDateTime
    4/12/2006 12:00:00      null
    4/12/2006 13:00:00      null


    Και θέλω να κάνω το εξής update,

    Update Table
    set EndDateTime= 4/12/2006 12:30:00
    where
    StartDateTime = (select min(StartDateTime) from Table where EndDateTime is null)

    Ως αποτέλεσμα είναι να μην κάνει κανένα update σε κανένα row. ενώ θέλω να κάνω update το πρώτο row.

    Dimitris S.
    FIRST TEST THEN CODE....
  •  04-12-2006, 13:34 21618 σε απάντηση της 21617

    Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Δοκίμασε το = να το κάνεις IN

    Update Table

    set EndDateTime= 4/12/2006 12:30:00

    where

    StartDateTime IN (select min(StartDateTime) from Table where EndDateTime is null)
    -------------------------------
    Κ. Γιαγιάς

    Θα ήθελα να είμαι μέσα στην φωτογραφία και όχι εδώ!!!!

    http://beastie06.wordpress.com
  •  04-12-2006, 13:38 21619 σε απάντηση της 21618

    Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Τι μήνυμα λάθους βγάζει; Το

    set EndDateTime= 4/12/2006 12:30:00

    είναι λάθος...
    Vir prudens non contra ventum mingit
  •  04-12-2006, 13:59 21621 σε απάντηση της 21619

    Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Ναι το ξέρω ότι ειναι λάθος. Έτσι το εγραψα να το καταλαβετε.
    Dimitris S.
    FIRST TEST THEN CODE....
  •  04-12-2006, 14:12 21622 σε απάντηση της 21621

    Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Το In πάιζει, αλλά υπάρχει τρύπα.Μάλλον,

    Έχω την εξής περίπτωση,

    29/11/2006 12:00:00 null

    4/12/2006 12:00:00 null

    4/12/2006 13:00:00 null

    Όπου στο Update η πρώτη εγγραφή δεν με αφορά καθόλου. Όταν υπάρχει τέτοια εγγραφη δεν παίζει το Update. Όταν δεν υπάρχει και εχω μόνο τις δύο τότε μια χαρά τρέχει.
    Dimitris S.
    FIRST TEST THEN CODE....
  •  04-12-2006, 14:24 21625 σε απάντηση της 21622

    Re: Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Ο μόνος τρόπος να αλλάξεις ποιες εγγραφές σε ενδιαφέρουν είναι να αλλάξεις το SubQuery

    Update Table

    set EndDateTime= 4/12/2006 12:30:00

    where

    StartDateTime IN (select min(StartDateTime) from Table where EndDateTime is null and KATI !!)
    -------------------------------
    Κ. Γιαγιάς

    Θα ήθελα να είμαι μέσα στην φωτογραφία και όχι εδώ!!!!

    http://beastie06.wordpress.com
  •  04-12-2006, 14:50 21630 σε απάντηση της 21622

    Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

     jimenez wrote:
    Το In πάιζει, αλλά υπάρχει τρύπα.Μάλλον,

    Έχω την εξής περίπτωση,

    29/11/2006 12:00:00 null

    4/12/2006 12:00:00 null

    4/12/2006 13:00:00 null

    Όπου στο Update η πρώτη εγγραφή δεν με αφορά καθόλου. Όταν υπάρχει τέτοια εγγραφη δεν παίζει το Update. Όταν δεν υπάρχει και εχω μόνο τις δύο τότε μια χαρά τρέχει.

    Μα η πρώτη είναι που έχει την μικρότερη ημερομηνία. Αν δεν σε ενδιαφέρει η μικρότερη τότε το query σου είναι λάθος.

  •  04-12-2006, 15:46 21638 σε απάντηση της 21630

    Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Σωστά.Ξέχασα να πω ότι έχει επιπλέον πεδία του στυλ,

    ID StartDateTime EndDateTime

    5 29/11/2006 12:00:00 null

    6 4/12/2006 12:00:00 null

    6 4/12/2006 13:00:00 null

    Και κάνω update where ID=6.Συγνώμη για την παράλειψη.
    Dimitris S.
    FIRST TEST THEN CODE....
  •  04-12-2006, 15:48 21639 σε απάντηση της 21638

    Re: Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Update Table

    set EndDateTime= 4/12/2006 12:30:00

    where

    StartDateTime IN (select min(StartDateTime) from Table where EndDateTime is null and ID=6)
    -------------------------------
    Κ. Γιαγιάς

    Θα ήθελα να είμαι μέσα στην φωτογραφία και όχι εδώ!!!!

    http://beastie06.wordpress.com
  •  04-12-2006, 15:55 21641 σε απάντηση της 21618

    Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Εγώ έβαζα,

    Update Table

    set EndDateTime= 4/12/2006 12:30:00

    where

    StartDateTime IN (select min(StartDateTime) from Table where EndDateTime is null)

    and ID=6


    Dimitris S.
    FIRST TEST THEN CODE....
  •  04-12-2006, 15:56 21642 σε απάντηση της 21641

    Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    Δεν είναι το ίδιο ε?
    Dimitris S.
    FIRST TEST THEN CODE....
  •  04-12-2006, 16:05 21644 σε απάντηση της 21642

    Re: Απ: Re: Πως μπορώ να κάνω update μόνο το ένα row??

    οχι βεβαια...

    μετά από την εκτέλεση του SubQuery

    στην λάθος περίπτωση έχεις :

    where StartDateTime IN (29/11/2006 12:00:00) and ID=6

    ενώ στην άλλη: (την σωστή)

    where StartDateTime IN (4/12/2006 12:00:00)


    -------------------------------
    Κ. Γιαγιάς

    Θα ήθελα να είμαι μέσα στην φωτογραφία και όχι εδώ!!!!

    http://beastie06.wordpress.com
  •  04-12-2006, 16:39 21645 σε απάντηση της 21617

    Απ: Πως μπορώ να κάνω update μόνο το ένα row??

    Έχω βάλει την εξής update

    where [StartDateTime] In(select min([StartDateTime]) from Table where [EndDateTime] is NULL AND [StartDateTime]
    Και πάλι πρόβλημα έχω.
    Dimitris S.
    FIRST TEST THEN CODE....
  •  04-12-2006, 16:50 21646 σε απάντηση της 21645

    Απ: Πως μπορώ να κάνω update μόνο το ένα row??

    jimenez wrote
    " where [StartDateTime] In(select min([StartDateTime]) from Table where [EndDateTime] is NULL AND [StartDateTime] "

    And [StartDateTime] = ???????? ...
    Εφόσον ξέρεις το ID ( an υποθέσουμε ότι έχεις ίδιο id για κάθε ημέρα ) τότε ID = XX για να πάρεις την min εγγραφή για αυτήν την ημέρα , αν το παραπάνω σενάριο δεν παίζει πές μας την λογική κάτω από την οποία θέλεις να παίξει το query για να σε βοηθήσουμε πιό αποτελεσματικά .

  •  04-12-2006, 17:39 21648 σε απάντηση της 21646

    Απ: Πως μπορώ να κάνω update μόνο το ένα row??

    Update TABLE

    set EndDateTime=@endDateTime

    where

    <A href="mailto:ID=@id">ID=@id</A> <FONT size=2>

    [StartDateTime] </FONT><FONT color=#808080 size=2>In(</FONT><FONT color=#0000ff size=2>select</FONT><FONT size=2> </FONT><FONT color=#ff00ff size=2>min</FONT><FONT color=#808080 size=2>(</FONT><FONT size=2>[StartDateTime]</FONT><FONT color=#808080 size=2>)</FONT><FONT size=2> </FONT><FONT color=#0000ff size=2>from</FONT><FONT size=2> BDTMRouteLog

    </FONT><FONT color=#0000ff size=2>where</FONT><FONT size=2> [EndDateTime] </FONT><FONT color=#808080 size=2>is</FONT><FONT size=2> </FONT><FONT color=#808080 size=2>NULL</FONT><FONT size=2> </FONT><FONT color=#808080 size=2>AND</FONT><FONT size=2> [StartDateTime]</FONT><FONT color=#808080 size=2><</FONT><FONT size=2>@endDateTime)</FONT><FONT color=#808080 size=2></FONT>

    Κομμάτι απο store procedure. Αυτο τρέχω.


    Dimitris S.
    FIRST TEST THEN CODE....
Σελίδα 1 από 2 (19 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems