Обновление скриптов не работает должным образом? - PullRequest
0 голосов
/ 15 марта 2012

Мне нужно обновить STATUS = 'R' для заданного значения X, MONTH и YEAR и STATUS = 'C' для всего, что было до предыдущего года.

(я использую переменные вместожестко запрограммированные значения для X, MONTH и YEAR, приведенные ниже показатели являются лишь примером того, что я пытаюсь)

update A set STATUS = 'R' 
where X =1 
and MONTH = 7
and YEAR = 2011;

update A set STATUS = 'C' 
where X = 1
and MONTH < 7
and  YEAR <= 2011 
and  YEAR >= 2011 -  1;

Вывод выглядит как ( неверный вывод ):

....X   YEAR   MONTH   STATUS
....1   2010    1       C 
....1   2010    2       C 
....1   2010    3       C 
....1   2010    4       C 
....1   2010    5       C 
....1   2010    6       C 
....1   2010    7       R  //Actually this shoud be updated to C
....1   2010    8       R  //Actually this shoud be updated to C
....1   2010    9       R  //Actually this shoud be updated to C
....1   2010   10       R  //Actually this shoud be updated to C
....1   2010   11       R  //Actually this shoud be updated to C
....1   2010   12       R  //Actually this shoud be updated to C
....1   2011    1       C 
....1   2011    2       C 
....1   2011    3       C 
....1   2011    4       C 
....1   2011    5       C 
....1   2011    6       C 
....1   2011    7       R

Теперь первый запрос на обновление работает нормально, как мы видим выше.теперь я ожидаю изменить все вышеперечисленное на STATUS = 'C', но оно не применяется к 7-12 месяцам 2010 года.

, пожалуйста, предложите.Oracle 9i Enterprise Edition release 9.2.8.0 - 64 bit Production

Ответы [ 2 ]

0 голосов
/ 15 марта 2012
update A set STATUS = 'R' 
where X =1 
and MONTH = 7
and YEAR = 2011;

update A set STATUS = 'C' 
where X = 1
and YEAR = 2011 
and MONTH < 7

update A set STATUS = 'C' 
where X = 1  
and  YEAR = 2011 -  1;

это работает

0 голосов
/ 15 марта 2012

Во втором обновлении вы устанавливаете его только на МЕСЯЦ <7, поэтому, если оно больше, оно ничего не делает </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...