Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите насчет вupdate зависящего от условий(теоретический вопрос))  [new]
Mendez
Member

Откуда:
Сообщений: 9
Можно ли написать оператор update ,который обновляет значение поля в одной из таблиц базы данных в зависимости от условий , не используя оператор case и не используя хранимой процедуры?
26 дек 09, 13:52    [8121821]     Ответить | Цитировать Сообщить модератору
 Re: Помогите насчет вupdate зависящего от условий(теоретический вопрос))  [new]
Mendez
Member

Откуда:
Сообщений: 9
То есть запрос должен проставлять разные значения в поле ,которое обновляется ,в зависимости от других условий
26 дек 09, 13:52    [8121822]     Ответить | Цитировать Сообщить модератору
 Re: Помогите насчет вupdate зависящего от условий(теоретический вопрос))  [new]
step_ks
Member

Откуда:
Сообщений: 936
update table
set column=(select ... where <ваши условия> )
from ... 
это ?
26 дек 09, 14:09    [8121839]     Ответить | Цитировать Сообщить модератору
 Помогите насчет вupdate зависящего от условий(теоретический вопрос))  [new]
Mendez
Member

Откуда:
Сообщений: 9
step_ks,значения ,которыми будет отновляться поле-дефолтные,т.е. они проставляются в зависимости от того существует ли запись в таблице.Конкретнее,вот есть две таблицы,необходимо проставить значение somevalue таблицы First 1 .

create table First (

ID int identity primary key,

uniquevalue varchar(10),

cash money,

CheckDate datetime,

somevalue tinyint)



create table Second(

ID int identity primary key,

uniquevalue varchar(10),

cash money,

CheckDate datetime,

somevalue tinyint)



То каким оно будет определяется такими условиями:

если в таблице Second существовал такой же uniquevalue с таким же значением , как и в First, то somevalue обновляется на 111 ;
если в таблице Second существовал такой же uniquevalue и его значение cash было больше, чем в First, то somevalue обновляется на 222;
если в таблице Second существовал такой же uniquevalue и его значение cash было меньше, чем в First, то somevalue обновляется на 333.
При это желательно использовать одно соединение между таблицами в запросе...
26 дек 09, 14:50    [8121877]     Ответить | Цитировать Сообщить модератору
 Re: Помогите насчет вupdate зависящего от условий(теоретический вопрос))  [new]
step_ks
Member

Откуда:
Сообщений: 936
uniquevalue в обоих таблицах уникально? и чем вас пугают case-ы? Какой-то генератор запросов используете, который их не знает?
update f
    set somevalue=(select 111 where s.cash=f.cash union all select 222 where s.cash>f.cash union all select 333 where s.cash<f.cash) 
    from First f join Second s on s.uniquevalue=f.uniquevalue
    where f.cash is not null and s.cash is not null
26 дек 09, 15:09    [8121901]     Ответить | Цитировать Сообщить модератору
 Re: Помогите советом относительно выполнения update, зависящего от условий  [new]
Mendez
Member

Откуда:
Сообщений: 9
step_ks, uniquevalue-уникален,case можно использовать,но все равно при этом необходимо обеспечить только одно соединение между таблицами
26 дек 09, 20:38    [8122444]     Ответить | Цитировать Сообщить модератору
 Re: Помогите насчет вupdate зависящего от условий(теоретический вопрос))  [new]
step_ks
Member

Откуда:
Сообщений: 936
Mendez, чем предложенный вариант не катит?
27 дек 09, 19:18    [8124198]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить