Consulta en Access

DANIEL
22 de Junio del 2003
Pues tengo una consulta q he creado, es una consulta con una subconsulta anidada, mi problema es que la subconsulta devuelve + de una tabla, cosa q la consulta principal no puede aceptar, he intentado añadiendo EXISTS,pero sera por mi poco conocimiento de esa intruccion o cualquier otra causa q la consulta sigue sin funcionar, si alguien me puede ayudar ahi va la consulta:
(Es de actualizacion)

UPDATE Contrato INNER JOIN Contenedor ON Contrato.IdContrato = Contenedor.Contrato SET Contrato.Precio = "gratis"
where contrato.IdContrato in
(SELECT Count(Contenedor.Contrato) AS nºContenedores, Contenedor.Contrato
FROM Contrato INNER JOIN Contenedor ON Contrato.IdContrato = Contenedor.Contrato
GROUP BY Contenedor.Contrato
HAVING (((Count(Contenedor.Contrato))>2))
ORDER BY Count(Contenedor.Contrato) DESC);

Amarillo
22 de Junio del 2003
Me parece que el problema esta en la subconsulta, me imagino que hayas probado la subconsulta aparte (como una consulta de seleccion normal) para ver si te devuelve los registros que deseas. En fin, te debe quedar de la siguiente manera:
UPDATE Contrato INNER JOIN Contenedor ON Contrato.IdContrato = Contenedor.Contrato SET Contrato.Precio = "gratis"
where contrato.IdContrato in
(SELECT Contenedor.Contrato
FROM Contrato INNER JOIN Contenedor ON Contrato.IdContrato = Contenedor.Contrato
GROUP BY Contenedor.Contrato
HAVING (((Count(Contenedor.Contrato))>2))
ORDER BY Count(Contenedor.Contrato) DESC);
solo elimine la primera columna de la subconsulta porque no tiene sentido que compares cantidad de contenedores con IdContrato.
Si eso no resulta, no entendi lo que quieres. Tambien echale un vistazo a los parentesis.

Amarillo
22 de Junio del 2003
Otra cosa, y es por curiosidad, para que necesitas el inner join en la consulta principal de Actualizacion? Me quede con la duda.