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.
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


0