Код ошибки: -802, SQL Состояние: 22023 SQL0802 - PullRequest
0 голосов
/ 19 января 2020

У меня проблема с обновлением (база данных AS400):

UPDATE      TABLE1 t1
SET      
(t1.VRNUMO,t1.VRNUSE) = (SELECT XVRNUMO,XVRNUSE   FROM TABLE2 t2  where  t2.XVRPRTE = t1.VRPRTE AND t2.XVRPROG=t1.VRPROG)
 WHERE
 t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0

Я получаю это сообщение об ошибке:

[Код ошибки: -802, SQL Состояние: 22023] [SQL0802] Ошибка определения даты или даты.

Я получаю ту же ошибку, если пытаюсь выполнить SELECT с JOIN при тех же условиях:

SELECT *
FROM
TABLE1 t1
LEFT JOIN
TABLE2 t2
ON
t2.XVRPRTE=t1.VRPRTE  and t2.XVRPROG=t1.VRPROG
WHERE
t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0

Нет проблем, если я делаю тот же SELECT с помощью RIGHT JOIN или удаляю второе условие из JOIN (t2.XVRPROG = t1.VRPROG) или

SELECT *
FROM
TABLE1 t1
RIGHT JOIN
TABLE2 t2
ON
t2.XVRPRTE=t1.VRPRTE  and t2.XVRPROG=t1.VRPROG
WHERE
t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0


SELECT *
FROM
TABLE1 t1
LEFT JOIN
TABLE2 t2
ON
t2.XVRPRTE=t1.VRPRTE  
WHERE
t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0

Что может быть проблема?

...