Ver Mensaje Individual
  #2  
Antiguo 27-01-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, el campo precio_ref en el where sólo puede compararse con un valor, por eso el mensaje de error que te dice que la subcosulta devuelve más de un valor. Es decir, piensa en el update como que recorre uno a uno todos los registros y, por cada uno, ejecuta la subconsulta y compara el valor de precio_ref con lo que devuelve dicha subconsulta. Pero so hay más de un registro en la subconsulta, ¿con cuál compararía?

Para solucionar esto, tendrías que restringir la subconsulta para que te devuelva sólo el valor que corresponda al registro actual, por ejemplo:

Código SQL [-]
update captura
set precio_dif = 'X'
where precio_ref <> (
  select precio_ref from requerimiento
  where
    licitacion='LA-019GYR047-T25-2010' and
    requerimiento.col1 = captura.col1 and
    requerimiento.col2 = captura.col2
)

Pero, aun esto dependerá de que en tu tabla requerimiento no se repitan registros con los mismos valores de col1 y col2. Podrían repetirse, pero no para la misma licitación.

// Saludos
Responder Con Cita