У меня проблема с обновлением (база данных 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
Что может быть проблема?