Трудно объяснить мою проблему, поэтому я добавил изображение.Как присоединиться к строкам SQL?
tblhistory:
У меня есть ReportedGMY
колонку в tblother
. Мне нужно обновить значения до ReportedGMY
, и мне нужно сэкономить в tblhistory
старых ReportedGMY
значения и новых ReportedGMY
значения.
Во-первых, я выполнил запрос INSERT INTO SELECT
и сэкономьте до tblhistory
ReportedGMY
значение от tblother
. И я обновил tblother
и изменил значения. Затем я снова вставил в tblhistory
.
Теперь мне нужно передать значения OldValue
с запросом. Затем удалите нулевые строки. Как это можно сделать? Или по-другому?
Вставка (второй) запрос:
INSERT INTO tblhistory(FindingID, NewValue, [Date])
SELECT
ID, ReportedGMY, GETDATE() AS CurrentDateTime
FROM
(SELECT
ID, tblother.ReportedGMY,
REPLACE(tblother.ReportedGMY, ' ', '') AS NewNumbers
FROM
tblother
INNER JOIN
tblother2 ON tblother.ReportID = tblother2.ID) A
WHERE
A.ReportedGMY LIKE '%,Y,%'
OR A.ReportedGMY LIKE 'Y,%'
OR A.ReportedGMY LIKE '%,Y'
Если я могу написать этот запрос как UPDATE
, проблема будет решена, я думаю. Как вы думаете?
Это близко к тому, что я собираюсь ответить. Одна вещь, о которой нужно помнить, вероятно, заключается в наличии дублирующих значений «FindingId». Но пока их старые ценности похожи, это, вероятно, приведет лишь к появлению нескольких дополнительных обновлений (хотя я не совсем уверен в этом). –
Да, полностью действительная забота. Я только что обновил свой ответ с помощью решения, которое обязательно вернет только одну строку данных на FindingID –
. Я обновил свой вопрос. – pseudocode