Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2012, 08:49
ipoint
 
Fecha de Ingreso: julio-2012
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Update Valor en Tabla con el Valor mas reciente de Otra

Hola Amigos,

Estoy realizando un query para actualizar los porcentajes de utilidad de una serie de productos (seleccionados por instancia) en el sistema administrativo SAINT ENTERPRISE, para hacer esto debo realizar un inner join entre 2 tablas (SAPRIM y SAPROD) ya que los valores de las instancias pertenecen a SAPROD.

Todo iba bien hasta que me di cuenta en en la Tabla SAPRIM los codigos de los productos aparecen tantas veces como se haya importado el producto... esto es con fines de calculos de costos promedios y otras cosas.

El caso es que el query funciona, solo que al ejecutarse este toma para cada producto el costo mas antiguo de la tabla, porlo que me hace el ajuste de utilidad considerando este valor ya Obsoleto..

La pregunta es como hago para que el query considere el ultimo costo (fecha mas reciente) para cada codigo de producto?????

Se me ocurrio algo como esto pero me da errores:

ORDER BY [SAINTDB-INTERFAZ].[dbo].SAPRIM.FechaE DESC


Aqui el Query que funciona pero me toma el ultimo valor:
---------------------------------------------------------------------------------------------
UPDATE [SAINTDB-INTERFAZ].[dbo].[SAPRIM]
SET Precio1 = [SAINTDB-INTERFAZ].[dbo].SAPRIM.CostAct / 0.80, Precio2 = [SAINTDB-INTERFAZ].[dbo].SAPRIM.CostAct / 0.75, Precio3 = [SAINTDB-INTERFAZ].[dbo].SAPRIM.CostAct / 0.50
FROM [SAINTDB-INTERFAZ].[dbo].SAPROD INNER JOIN
[SAINTDB-INTERFAZ].[dbo].SAPRIM ON [SAINTDB-INTERFAZ].[dbo].SAPROD.CodProd = [SAINTDB-INTERFAZ].[dbo].SAPRIM.CodProd
WHERE ([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 9) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 13) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 14) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 15) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 16) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 17) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 21) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 22) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 23) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 24) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 25) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 26) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 27) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 28) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 29) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 30) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 31) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 33) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 34) OR
([SAINTDB-INTERFAZ].[dbo].SAPROD.CodInst = 35)

-----------------------------------------------------------------------------------------------------------