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

Откуда:
Сообщений: 2
Есть таблица расхода

declare @tbl1 table (id int, nl int, kol numeric (5,0), data_o smalldatetime)

insert into @tbl1 (id, nl, kol, data_o)
select 1, 1, 5,   '20090101' union all
select 2, 1, 5,   '20090215' union all
select 3, 1, 2.5, '20090801' union all
select 4, 2, 8,   '20091201' union all
select 5, 2, 2,   '20090302' union all
select 6, 2, 1,   '20090901' 

Есть таблица разнарядки, nl - поле связки

declare @tbl2 table (id_r int, nl int, kol numeric (5,0), kol_ostatok numeric (5,0), data_b smalldatetime, data_e smalldatetime )

insert into @tbl2 (id_r, nl, kol, kol_ostatok, data_b, data_e)
select 1, 1, 5,  0, '20090101', '20090131' union all
select 2, 1, 2,  0, '20090201', '20090601' union all
select 3, 1, 2,  0, '20090612', '20090620' union all
select 4, 2, 10, 0, '20090201', '20090215' union all
select 5, 2, 5,  0, '20090301', '20090320' union all
select 6, 2, 4,  0, '20090701', '20090710'

Как обновить поле @tbl2.kol_ostatok = @tbl2.kol - @tbl1.kol
данными только тех записей @tbl1, у которых
@tbl1.data_o BETWEEN @tbl2.data_b AND @tbl2.data_e

SQL Server 2005
18 дек 09, 13:59    [8086674]     Ответить | Цитировать Сообщить модератору
 Re: Списание разнарядки  [new]
el Pueblo
Member

Откуда: Харьков
Сообщений: 202
update t2
set t2.kol_ostatok = t2.kol-t1.kol
from @tbl1 t1 join @tbl2 t2 on t1.nl=t2.nl
where t1.data_o>=t2.data_b and t1.data_o<=t2.data_e
так?
18 дек 09, 14:15    [8086841]     Ответить | Цитировать Сообщить модератору
 Re: Списание разнарядки  [new]
bmv_mon
Member

Откуда:
Сообщений: 2
el Pueblo,

Да, точно..., спасибо.
18 дек 09, 22:56    [8089650]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить