Crear Tabla

29/06/2007 - 01:17 por Carlos | Informe spam
Tengo los sig datos en un registro de una tabla

id_Cliente Mensualidad plazo_pago fecha_movimiento
548 500.00 10 04/03/2007

A partir de este registro, necesito crear una tabla con los siguientes
datos, que representarian las fechas de cada abono

Fecha Pago Meses Transcurridos
04/04/2007 1
04/05/2007 2
04/06/2007 3
04/07/2007 4
04/08/2007 5
04/09/2007 6
04/10/2007 7
04/11/2007 8
04/12/2007 9
04/01/2008 10

Espero puedan darme una idea de como crear esta tabla temporal

gracias

Preguntas similare

Leer las respuestas

#1 Carlos M. Calvelo
29/06/2007 - 12:29 | Informe spam
On 29 jun, 01:17, "Carlos" wrote:
Tengo los sig datos en un registro de una tabla

id_Cliente Mensualidad plazo_pago fecha_movimiento
548 500.00 10 04/03/2007

A partir de este registro, necesito crear una tabla con los siguientes
datos, que representarian las fechas de cada abono

Fecha Pago Meses Transcurridos
04/04/2007 1
04/05/2007 2
04/06/2007 3
04/07/2007 4
04/08/2007 5
04/09/2007 6
04/10/2007 7
04/11/2007 8
04/12/2007 9
04/01/2008 10

Espero puedan darme una idea de como crear esta tabla temporal

gracias



Una idea:
SELECT
DATEADD(Month,MES.MesesTranscurridos,pagos.fecha_movimiento) AS
'Fecha Pago',
MES.MesesTranscurridos
FROM
pagos, ( SELECT 1 AS MesesTranscurridos UNION
SELECT 2 UNION
SELECT 3 UNION
SELECT 4 UNION
SELECT 5 UNION
SELECT 6 UNION
SELECT 7 UNION
SELECT 8 UNION
SELECT 9 UNION
SELECT 10 UNION
SELECT 11 UNION
SELECT 12
) MES
WHERE MES.MesesTranscurridos <= pagos.plazo_pago
ORDER BY pagos.id_cliente,MES.MesesTranscurridos

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Javier Loria
29/06/2007 - 16:12 | Informe spam
Hola:
En SQL 2005 podrias usar una CTE recursiva.
==WITH Numeros(Numero)
AS
(SELECT 1
UNION ALL
SELECT Numero+1
FROM Numeros
WHERE Numero<100
)
SELECT DATEADD(Month, Numeros.Numero, Pagos.fecha_movimiento)
AS FechaPago
, Numeros.Numero AS MesesTranscurridos
FROM Pagos
JOIN Numeros
ON Numeros.Numero<= pagos.plazo_pago
== Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Carlos M. Calvelo" wrote in message
news:
On 29 jun, 01:17, "Carlos" wrote:
Tengo los sig datos en un registro de una tabla

id_Cliente Mensualidad plazo_pago fecha_movimiento
548 500.00 10 04/03/2007

A partir de este registro, necesito crear una tabla con los siguientes
datos, que representarian las fechas de cada abono

Fecha Pago Meses Transcurridos
04/04/2007 1
04/05/2007 2
04/06/2007 3
04/07/2007 4
04/08/2007 5
04/09/2007 6
04/10/2007 7
04/11/2007 8
04/12/2007 9
04/01/2008 10

Espero puedan darme una idea de como crear esta tabla temporal

gracias



Una idea:
SELECT
DATEADD(Month,MES.MesesTranscurridos,pagos.fecha_movimiento) AS
'Fecha Pago',
MES.MesesTranscurridos
FROM
pagos, ( SELECT 1 AS MesesTranscurridos UNION
SELECT 2 UNION
SELECT 3 UNION
SELECT 4 UNION
SELECT 5 UNION
SELECT 6 UNION
SELECT 7 UNION
SELECT 8 UNION
SELECT 9 UNION
SELECT 10 UNION
SELECT 11 UNION
SELECT 12
) MES
WHERE MES.MesesTranscurridos <= pagos.plazo_pago
ORDER BY pagos.id_cliente,MES.MesesTranscurridos

Saludos,
Carlos

Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
29/06/2007 - 18:31 | Informe spam
On 29 jun, 16:12, "Javier Loria" wrote:
Hola:
En SQL 2005 podrias usar una CTE recursiva.



Si, pero que tenga cuidado con el maxrecursion si
es posible tener mas de 101 plazos de pago.

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida