Consulta sql

A ver, estoy haciendo una aplicación en builder, y quería hacer con una consulta sql lo siguiente:
Yo tengo dos tablas, una de abonados y otra de pagos de abonados, lo que quiero
hacer es con una instrucción, introducir en la tabla de pagos, doce registros, para
cada mes y para cada abonado, ¿eso se podría hacer de alguna forma?
Te lo pongo más claro en un ejemplo:
Si yo tengo la tabla abonados con dos registros:
Abonados
======
DNI
78787878
79797979
Querría que la tabla de pagos me quedase así
Pagos
====
DNI Mes
78787878 Enero
78787878 Febrero
78787878 Marzo
78787878 ...
78787878 Diciembre
79797979 Enero
79797979 Febrero
79797979 Marzo
79797979 ...
79797979 Diciembre
Respuesta
1
Esto se podría si tuvieras en otra tabla con los 12 meses del año:
Meses
=====
Enero
Febrero
Marzo
...
Diciembre
Entonces harías un Insert de un Select:
Insert into Pagos
Select a.DNI, b.MES
from Abonados a, Mes b ;
commit;
Si necesitas restringir alguna tabla, puedes colocar un Where, pero no necesitas hacer JOIN entre estas dos tablas, lo que se genera es un producto cartesiano que agrega todos los campos seleccionados de una tabla en la otra.
Ahora también lo puedes hacer de la siguiente manera, haciendo una consulta por mes, con los datos que necesites
y también sería un Insert de un Select, así no necesitas una tabla de meses:
Insert into Pagos
Select a.DNI, 'Enero'
From Abonados a
Union
Select a.DNI, 'Febrero'
From Abonados a
Union
Select a.DNI, 'Marzo'
From Abonados a
...
Union
Select a.DNI, 'Diciembre'
From Abonados a;
commit;
Cualquiera de estas formas genera lo que buscas, y en una sola consulta, insertas un grupo de datos.
Ojalá te haya servido,
Saludos
Abc
:)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas