Выберите и обновите с объединением, дающим разные записи

У меня есть две таблицы с отношением

  • Назначение таблицы
  • Билеты за столом

В таблице назначений есть поле статуса. Итак, я извлекаю запись из назначения таблицы, где статус равен complete, который возвращает 6909 records

Затем я возвращаю записи, используя внутреннее соединение с условием статуса complete, которые также возвращают 6909 записей.

Но когда я обновляю таблицу с помощью соединения и с тем же условием, что обновляются записи 6625, а не 6909. Есть ли проблема с запросом или чем-то еще? Пожалуйста, направляйте

Запросы:

Первый: вернуть 6909 записей

SELECT * FROM [ITSC].[dbo].[assignment] where assignment_status = 'Completed' 

Второй: вернуть 6909 записей

SELECT tickets.ticket_submitted_by , tickets.ticket_type , tickets.ticket_open_date , tickets.ticket_priority , tickets.ticket_description , assignment.staff_name,assignment.assigned_time_start,assignment.assigned_time_end,assignment.assignment_status
from tickets 
inner join 
assignment 
on tickets.ticket_id = assignment.ticket_id
where assignment.assignment_status = 'Completed'

Третье: обновление 6625 записывает не 6909

 update tickets set tickets.ticket_close_date = '2015-04-29' 
,tickets.ticket_close_time = '2015-04-29 09:25:40.670' from tickets
 inner join assignment
 on tickets.ticket_id = assignment.ticket_id
 where assignment.assignment_status = 'Completed'

person Reply not    schedule 14.12.2018    source источник
comment
проверьте, есть ли столбцы, которые уже имеют правильное значение.. они не учитываются при обновлении.   -  person scaisEdge    schedule 14.12.2018
comment
Я сбросил оба столбца с помощью NULL, он все еще обновляет 6625 записей.   -  person Reply not    schedule 14.12.2018
comment
Проверьте, есть ли случаи, когда конкретная заявка имеет более одного назначения. Если есть, этот билет будет засчитан дважды в select, но, вероятно, только один раз в update...   -  person user1429080    schedule 14.12.2018
comment
@user1429080 user1429080 Спасибо .. Да, это была причина, по которой я написал запрос, используя отдельный, и он возвращает 6625, а не 6609 ..   -  person Reply not    schedule 14.12.2018
comment
@Replynot, если вы хотите убедиться, что после обновления попробуйте второй выбор, он должен дать вам 6909 записей.   -  person Omar Hamdan    schedule 14.12.2018


Ответы (1)


Можете ли вы попробовать этот запрос

 update tickets set tickets.ticket_close_date = '2015-04-29' 
                    ,tickets.ticket_close_time = '2015-04-29 09:25:40.670' 
    from assignment
    where  tickets.ticket_id = assignment.ticket_id
    and  assignment.assignment_status = 'Completed'
person Anson Aricatt    schedule 14.12.2018