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

Encuentre el campo de la fecha mas proxima

Estas en el tema de Encuentre el campo de la fecha mas proxima en el foro de SQL Server en Foros del Web. Estimados, Tengo una duda que yo se que uds me pueden ayudar, tengo una tabla "VENTA" con datos de id, fecha y venta, y tengo ...
  #1 (permalink)  
Antiguo 09/07/2010, 13:09
 
Fecha de Ingreso: noviembre-2002
Mensajes: 97
Antigüedad: 21 años, 5 meses
Puntos: 0
Encuentre el campo de la fecha mas proxima

Estimados,

Tengo una duda que yo se que uds me pueden ayudar, tengo una tabla "VENTA" con datos de id, fecha y venta, y tengo otra tabla "COSTO" con datos de id, fecha y costo, lo que tengo que hacer es colocarle a la tabla "VENTA" el costo de la tabla "COSTO"mas proximo a la fecha de venta.

Tabla VENTA ( SELECT ID, FECHA, VENTA FROM VENTA )

id | fecha | venta
1 | 2010-04-01 00:00:000 | 1.298
2 | 2010-04-08 00:00:000 | 2.346
3 | 2010-04-15 00:00:000 | 9.876
4 | 2010-04-31 00:00:000 | 1.928


Tabla COSTO ( SELECT ID, FECHA, COSTO FROM COSTO )

id | fecha | costo
1 | 2010-04-03 00:00:000 | 1.120
1 | 2010-04-05 00:00:000 | 1.150
2 | 2010-04-09 00:00:000 | 2.280
2 | 2010-04-10 00:00:000 | 2.180
3 | 2010-04-17 00:00:000 | 9.160
3 | 2010-04-16 00:00:000 | 9.190
4 | 2010-04-28 00:00:000 | 1.470
4 | 2010-04-27 00:00:000 | 1.770

y que quede así

id | fecha | venta | costo
1 | 2010-04-01 00:00:000 | 1.298 | 1.120 (costo del dia 3)
2 | 2010-04-08 00:00:000 | 2.346 | 2.280 (costo del dia 9)
3 | 2010-04-15 00:00:000 | 9.876 | 9.190 (costo del dia 16)
4 | 2010-04-31 00:00:000 | 1.928 | 1.470 (costo del dia 28)

¿Como se puede hacer?

De antemano, gracias a todos los que puedan responder esta consulta.
  #2 (permalink)  
Antiguo 09/07/2010, 14:07
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Encuentre el campo de la fecha mas proxima

Por ahi va la cosa:
Código SQL:
Ver original
  1. SELECT V.ID, V.FECHA, V.VENTA, MIN(ABS(DATEDIFF(D,V.FECHA,C.FECHA)))
  2. FROM VENTA V
  3. INNER JOIN COSTO C ON V.ID = C.ID
  4. GROUP BY V.ID, V.FECHA, V.VENTA
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 09/07/2010, 15:16
 
Fecha de Ingreso: noviembre-2002
Mensajes: 97
Antigüedad: 21 años, 5 meses
Puntos: 0
Respuesta: Encuentre el campo de la fecha mas proxima

Pero esto no me entrega el costo, ¿habra algo que me entregue el costo?
  #4 (permalink)  
Antiguo 20/07/2010, 11:27
 
Fecha de Ingreso: abril-2010
Mensajes: 38
Antigüedad: 14 años
Puntos: 0
Respuesta: Encuentre el campo de la fecha mas proxima

Hola janor2001, gusto en saludarte, esta es mi primera respuesta que entrego, es Espero que te sirva.

SELECT V1.ID, V1.FECHA, V1.VENTA, (SELECT TOP (1) COSTO FROM COSTO
WHERE (FECHA < V1.FECHA) AND (ID = V1.ID)
ORDER BY FECHA DESC) AS COSTO,(SELECT TOP (1) FECHA FROM COSTO
WHERE (FECHA < V1.FECHA) AND (ID = V1.ID)
ORDER BY FECHA DESC) AS FECHA_ULT_COMPRA

FROM VENTA AS V1

es mas o menos yo que yo he preguntado antes.


saludos

Etiquetas: encuentre, mas, fechas, campos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:03.