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

Откуда: Москва
Сообщений: 67
всем доброго времени суток
имею следующий код:
update New_Clients_Report set
YTD_Jan13 = (case   when StatementID between '01.01.2013' and '05.01.2014' and CustBuy=0 then 'New'
                    when StatementID='02.01.2013' and CustBuy=1 then 'New YTD'
                    when StatementID='03.01.2013' and CustBuy in(1,2) then 'New YTD'
                    when StatementID='04.01.2013' and CustBuy in(1,2,3) then 'New YTD'
                    when StatementID='05.01.2013' and CustBuy in(1,2,3,4) then 'New YTD'
                    when StatementID='06.01.2013' and CustBuy in(1,2,3,4,5) then 'New YTD'
                    when StatementID='07.01.2013' and CustBuy in(1,2,3,4,5,6) then 'New YTD'
                    when StatementID='08.01.2013' and CustBuy in(1,2,3,4,5,6,7) then 'New YTD'
                    when StatementID='09.01.2013' and CustBuy in(1,2,3,4,5,6,7,8) then 'New YTD'
                    when StatementID='10.01.2013' and CustBuy in(1,2,3,4,5,6,7,8,9) then 'New YTD'
                    when StatementID='11.01.2013' and CustBuy in(1,2,3,4,5,6,7,8,9,10) then 'New YTD'
                    when StatementID='12.01.2013' and CustBuy in(1,2,3,4,5,6,7,8,9,10,11) then 'New YTD'
                    when StatementID='01.01.2014' and CustBuy in(1,2,3,4,5,6,7,8,9,10,11,12) then 'New YTD'
                    when StatementID='02.01.2014' and CustBuy in(1,2,3,4,5,6,7,8,9,10,11,12,13) then 'New YTD'
                    when StatementID='03.01.2014' and CustBuy in(1,2,3,4,5,6,7,8,9,10,11,12,13,14) then 'New YTD'
                    when StatementID='04.01.2014' and CustBuy in(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) then 'New YTD'
                    when StatementID='05.01.2014' and CustBuy in(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16) then 'New YTD'
            else    'Repead' end)
	from New_Clients_Report so inner join MonthSales_NC nc
on so.ClientID=nc.NewClientID and nc.MonthSales='01.01.2013'


и имею 2-ю таблицу со следующими полями: NewClientID-список новых клиентов, MonthSales-с какого месяца работаем с этим клиентом, например: NewClientID=2344, MonthSales=01.01.2013
работаем с клиентом 2344 с 01.01.2013 г.

у меня есть таблица "New_Clients_Report", добавлю к этой таблице новую колонку "YTD_Jan13", затем выставляю данные к этой таблице с помощью запроса 1
Я хочу чтобы этот запрос выполнился только для тех новых клиентов, которые работаем с 01.01.2013, а для остальных нет
получаю неправильные данные
запутался, прошу вашей помощи
спасибо за потраченное драгоценное время
28 июн 14, 14:35    [16233097]     Ответить | Цитировать Сообщить модератору
 Re: заполнение данных с условием из другой таблицы  [new]
Habib Karimov
Member

Откуда: Москва
Сообщений: 67
еще одно дополнение
в большом запросе: 0-новые клиенты, 1-работаем с этим клиентом в течение 1 месяца, 2-работаем с этим клиентом в течение 2 месяца и так далее
28 июн 14, 15:09    [16233153]     Ответить | Цитировать Сообщить модератору
 Re: заполнение данных с условием из другой таблицы  [new]
Shakill
Member

Откуда: мск
Сообщений: 1882
Habib Karimov, это адский ад какой-то. код писал явно не программист
28 июн 14, 16:39    [16233360]     Ответить | Цитировать Сообщить модератору
 Re: заполнение данных с условием из другой таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
Habib Karimov
получаю неправильные данные
запутался, прошу вашей помощи

Ну так напишите сначала select, который правильно выведет данные
29 июн 14, 15:18    [16235332]     Ответить | Цитировать Сообщить модератору
 Re: заполнение данных с условием из другой таблицы  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Habib Karimov


у меня есть таблица "New_Clients_Report", добавлю к этой таблице новую колонку "YTD_Jan13", затем выставляю данные к этой таблице с помощью запроса 1


а где же запрос 1 ?
или добавляете с помошю
 update (case ....when )?
30 июн 14, 11:28    [16237399]     Ответить | Цитировать Сообщить модератору
 Re: заполнение данных с условием из другой таблицы  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4823
Судя по всему, вы считаете нарастающий итог.
Вы на какой версии SQL Server?

UNBOUNDED PRECEDING ROWS вам не поможет ?

http://msdn.microsoft.com/en-us/library/ms189461.aspx
30 июн 14, 12:34    [16237902]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить