0

我正在运行一个查询以根据WHERE验证来自不同表的信息的子句应用一个数字

UPDATE EstadoDoc  
SET PuntajePrevio = 10
FROM Investigador i, Autores a, Documentos d, EstadoDoc e, Periodo p
WHERE i.IdInv = a.IdInv 
  AND a.IdDoc = d.IdDoc  
  AND d.Tipo = 'AR'   
  AND e.Estado IN ('A', 'RyR')
  AND p.FechaDesde <= e.FechaEst 
  AND p.FechaHasta >= e.FechaEst 
  AND p.IdPeriodo = 2019

这是我正在运行的查询,它应该PuntajePrevio根据WHERE子句将值 10 放入,但我注意到它不能正常工作,因为它不应该将值应用于 2 列。

为了进一步解释这里是它影响的数据的屏幕截图 - 它应该只考虑所有有d.tipo = 'AR'但不是的数据。

如您所见,它影响了 EstadoDoc 表中 IdDoc = 012、000 和 005 的行

但正如您在 Documentos 表中看到的那样,IdDoc=012 和 000 的行有 tipo = AC 而不是 AR,我想知道为什么即使子句指定了 tipo='AR' 它仍然考虑它们

4

0 回答 0