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

Откуда:
Сообщений: 37
Помогите составить запрос. Совсем не получается.
Есть две таблицы.
В одной id во второй id, data_create, date_close status
Нужно взять id из первой таблицы, найти такиеже id во второй и потом dsta_close id из строки со статусом 2 заменить на date_create из строки со статусом 1 плюс один день.
У меня получается только если обновля одну строку а чтобы массово чет я совсем запутался.

Update table2
Set[date] = dateadd (day, 1, date(xxxx)
Where tab2.id = tab1.id anb status = 2
15 ноя 19, 20:52    [22017746]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
londinium
Member

Откуда: Киев
Сообщений: 1121
Вы бы хоть образец данных и желаемого результата привели.
Может, что-то в таком виде
WITH TAB1 AS
(
  SELECT 1 AS ID
   UNION ALL
  SELECT 2 AS ID 
),
TAB2 AS
(
  SELECT 1 AS TAB1_ID,'20190101'AS DATECREATE,'20190228'AS DATECLOSE,1 AS STATUS
   UNION ALL
  SELECT 1 AS TAB1_ID,'20190331'AS DATECREATE,'20190430'AS DATECLOSE,2 AS STATUS
   UNION ALL
  SELECT 2 AS TAB1_ID,'20190531'AS DATECREATE,'20190801'AS DATECLOSE,1 AS STATUS
   UNION ALL
  SELECT 2 AS TAB1_ID,'20190901'AS DATECREATE,'20191031'AS DATECLOSE,2 AS STATUS   
)
SELECT T.ID,T2.STATUS,T2.DATECREATE,T2.DATECLOSE,CAST(DATEADD(DD,1,TREPL.DATECREATE)AS DATE)REPL_WITH_THIS
FROM TAB1 AS T
JOIN TAB2 AS T2 ON T.ID=T2.TAB1_ID
JOIN TAB2 AS TREPL ON T.ID=TREPL.TAB1_ID AND TREPL.STATUS=1
WHERE T2.STATUS=2;
15 ноя 19, 21:05    [22017750]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
dolya
Member

Откуда:
Сообщений: 37
londinium,

У меня в базе агент не работал. И заявки не закрывались.
Когда заметил. Включил агент. Заявки позакрывались. Но время уже неправильное. Отчет не сходится.
В общем есть во втрой таблице две колонки первая дата создания вторая дата закрытия. У заявки два статуса заведена и закрыта. Образно говоря у заявки есть не меньше двух строк в этой таблице. У одной строки со статусом заведена есть дата заведения в колонке дата создания у второй строки статус закрыта есть дата закрытия в колонке дата закрытия. В таблице 1 я выгрузил id номера некорректных заявок чтобы номера от туда брать. Мне нужно в блице 2 взять дату создания прибавить один день и вписать ее в этойже таблице в строку закрытия эту дату и сохранить эти изменения. И чегото у меня не получается это сделать массово.
15 ноя 19, 21:31    [22017756]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
dolya
Member

Откуда:
Сообщений: 37
Всю голову сломал.
15 ноя 19, 21:32    [22017757]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
PizzaPizza
Member

Откуда:
Сообщений: 300
dolya
Всю голову сломал.


не мудрено

Описание задачи - это половина решения, а от вашей горы текста у меня лично вся голова ломается.
Попробуйте для начала описать задачу более четко, по шагам и представить вариант конечного результата.
16 ноя 19, 19:57    [22017927]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить