Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Update con select anidado

Estas en el tema de Update con select anidado en el foro de SQL Server en Foros del Web. Buenas tardes a todos: Es la primera vez que ingreso al foro, por lo cual dejenme saber si no me expreso de manera correcta. Mi ...
  #1 (permalink)  
Antiguo 15/03/2011, 14:36
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Update con select anidado

Buenas tardes a todos:
Es la primera vez que ingreso al foro, por lo cual dejenme saber si no me expreso de manera correcta. Mi problema es el siguiente.
Tengo la tabla llamada "facturas_pagos" con los siguientes campos:

Fecha - abonado - facturas - pagos - saldo (más otros campos)

El dato de busqueda es el abonado. La tabla contiene varias filas por cada abonado y pueden no estar ordenadas.

Tengo un proceso realizado que calcula el saldo sumando el campo facturas y restandolo de la suma de pagos por cada cliente. Eso se guarda en @saldo y funciona ok.

A medida que se ingresan registros nuevos, ademas de calcular el saldo, necesito que se grabe en el campo "saldo" de la tabla en el ultimo registro correspondiente a ese abonado. Hice la siguiente sentencia:

UPDATE FACTURAS_PAGOS
SET SALDO = @saldo
WHERE (abonado = @cliente and FECHA =
(SELECT MAX(FECHA) FROM FACTURAS_PAGOS
WHERE (ABONADO = @CLIENTE and saldo not in (select saldo from facturas_pagos where saldo = 0))))

@cliente es un parametro de entrada que se facilita al procedimiento.
Utilicé la busqueda por fecha maxima, para saber cual es el ultimo registro de ese abonado y funciona. El problema surge cuando tengo fechas repetidas. Por eso agregue que tambien verifique si el "saldo" esta en 0. Pero siempre actualiza todos los campos con la fecha mayor. Es decir, funciona hasta la seleccion de cliente y fecha máxima, pero no logro que actualice el saldo solo en el ultimo registro del cliente.

Alguna sugerencia? que estoy haciendo mal?

Muchas gracias
  #2 (permalink)  
Antiguo 15/03/2011, 16:58
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Update con select anidado

Esta mal tu estructura, debe ser:

UPDATE <table> SET colum = x.dato
FROM
SELECT ...........................
__________________
MCTS Isaias Islas

Etiquetas: select, update, anidados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:02.