Access - Consulta Access con error

 
Vista:

Consulta Access con error

Publicado por Berenice M. (1 intervención) el 07/02/2006 16:35:03
Hola,
Tengo un problema con la siguiente consulta

UPDATE History SET Last_action=0 FROM History JOIN (Select Client_key, MAX(History_key) as maximo from History WHERE History.Client_key=FormClients.Client_key GROUP BY Client_key) as hmaximo ON History.Client_key = hmaximo.Client_key AND History.History_key < hmaximo.maximo

me marca este error:

Error de sintaxis (Falta operador) en la expresión de consulta '0 FROM History JOIN (Select Client_key, MAX(History_key) as maximo from History WHERE History.Client_key=FormClients.Client_key GROUP BY Client_key) as hmaximo ON History.Client_key = hmaximo.Client_key AND History.History_key < hmaximo.maximo'

Supongo yo, que me da el error porque la sintaxis del UPDATE es
UPDATE tabla SET campo= valor WHERE condicion, puedo usar un FROM en un update??

Lo que trato de hacer es lo siguiente tengo una tabla de historial (history), que tiene los campos History_key (sin duplicados), Client_key (con duplicados), Last_action(con duplicados), como este es un sistema que guarda el historial de las llamadas realizadas a los clientes, lo que hace ahorita con cada historia guardada es lo siguiente:

History_key Client_key Last_action
1 100 802
2 101 800
3 100 826
4 102 843
5 100 800
6 101 820

Como pueden ver, los clientes se repiten y en cada uno tiene una ultima accion diferente aunque se trate del mismo cliente, yo lo que necesito es que en la historia mas reciente ( el History_key mayor) sea en donde se quede grabado el numero de la ultima accion (Last_action) y que en los historiales anteriores de ese cliente (Client_key) se reemplaze el Last_action por un cero. Que quede algo asi:

History_key Client_key Last_action
1 100 0
2 101 0
3 100 0
4 102 843
5 100 800
6 101 820

Ojala alguien pueda indicarme que operador es el que le falta a mi consulta, o si es incorrecta porque uso un from?, o si tal vez pueda hacer primero un procedimiento para determinar el history_key mayor para el Client_key correspondiente, y guardar este dato en alguna variable y luego usar el update con la sintaxis mas comun.

Gracias de antemano
Saludos
Berenice M.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta Access con error

Publicado por VICTORIA (1530 intervenciones) el 07/02/2006 19:21:56
Hola

La sintaxis correcta es:

Sintaxis

UPDATE tabla
SET nuevovalor
WHERE criterio;


Tu intentas un UPDATE y asignas el valor, pero, el resto te sobra
Yo, en tu lugar, haría la consulta de selección con las tablas y campos que necesites y la transformaría en consulta de actualización para ver la sintaxis correcta

Un saludo
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar