BelgeNo = DocumentNo
CoKey = Company's unique number
Kapsam = type of document
Durumu = status (for document valid=1 invalid=0)
BitisTarihi = End date of the document
Исходная таблица имеет около 37000 записей и смешана. Я попытался сгруппировать для 'CoKey' и 'Kapsam' данные в исходной таблице с помощью следующего запроса.
SELECT A.ID, A.BelgeNo, A.CoKey, A.Kapsam, A.Durumu, A.BitisTarihi
FROM Sshyb A
INNER JOIN (SELECT CoKey, Kapsam
FROM Sshyb
GROUP BY CoKey, Kapsam
HAVING COUNT(*) > 1) B
ON A.CoKey = B.CoKey AND A.Kapsam = B.Kapsam
ORDER BY A.Kapsam, A.CoKey
Но я могу ошибиться в этом запросе. Количество записей составляет около 25000, когда запрос выполняется из-за «наличия». (я должен сделать это для отдельных записей) в любом случае
Таблица: ibb.co/5YmPPDH
После этого у меня есть дела:
if CoKey = Kapsam
biggest 'end date' must be true, others must be false (in the group as selected in the picture)
if dates are before today all should be wrong in the group
if CoKey != Kapsam
Switch to other group and check same case
Для этого я использую курсор как в запросе. Я пытаюсь найти группы с временной таблицей и обновить выше. Но когда он превышает около 12000 записей, процесс обновления не работает так, как я его разработал. Я не получаю сообщение об ошибке, но обновление неверно.