SQL - Repetir registro

   
Vista:

Repetir registro

Publicado por maosa (2 intervenciones) el 14/07/2015 21:05:44
Buenas Tardes,

Requiero duplicar 4 veces cada registro que me devuelve una consulta y así. Que instruccion me ayudaria a realizar esto

Saludos y gracias de antemano,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Repetir registro

Publicado por Isaias (690 intervenciones) el 15/07/2015 00:29:28
No se para que, pero, ¿en que base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Repetir registro

Publicado por maosa (2 intervenciones) el 15/07/2015 22:36:30
ese query se llevaria a access, se adaptaria a este. Y porque se muestra un informen y requieren cada registro se repita 4 veces y solo un valor va a cambiar de los mismos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Repetir registro

Publicado por leonardo_josue (877 intervenciones) el 15/07/2015 22:58:37
Hola Maosa:

Como comenta Isaías, tampoco entiendo muy bien para qué quieres hacer esto... si necesitas que un registro se "repita" pero que tenga un campo con un valor distinto, entonces estamos hablando de registros distintos... ¿Qué quiere decir esto? pues que los cuatro registros deberían existir físicamente en la tabla. La esencia de SQL es trabajar sobre información existente, no "crear" información al vuelo.

Pero bueno, eso forma parte de tu lógica de negocio. Una idea que se me ocurre, es utilizar el concepto de PRODUCTO CARTESIANO. Necesitarías tener una tabla "dummy" (una tabla tonta, o una tabla hueca, o como quieras llamarle" con cuatro registros... de tal suerte que al hacer un JOIN entre tu tabla y esta, se puedan "repetir" los registros. El ejemplo lo pongo en MySQL porque no tengo instalado Access, pero debería ser válido. Supongamos que tienes tu tabla de datos así:

1
2
3
4
5
6
7
8
9
mysql> SELECT * FROM tabla1;
+------+-------------+
| id_1 | descripcion |
+------+-------------+
|    1 | uno         |
|    2 | dos         |
|    3 | tres        |
+------+-------------+
3 rows in set (0.00 sec)

Lo que tienes que hacer es crear una tabla con cuatro registros (ya que quieres que se repitan cuatro veces), es decir algo así:

1
2
3
4
5
6
7
8
9
10
mysql> SELECT * FROM tabla_dummy;
+------+
| id   |
+------+
| a    |
| b    |
| c    |
| d    |
+------+
4 rows in set (0.00 sec)

Con estas dos tablas, puedes hacer un INNER JOIN SIN COLOCAR LA CLÁUSULA ON... esto haría un producto cartesiano entre ambas tablas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> SELECT * FROM tabla1
    -> INNER JOIN tabla_dummy
    -> ORDER BY tabla1.id_1, tabla_dummy.id;
+------+-------------+------+
| id_1 | descripcion | id   |
+------+-------------+------+
|    1 | uno         | a    |
|    1 | uno         | b    |
|    1 | uno         | c    |
|    1 | uno         | d    |
|    2 | dos         | a    |
|    2 | dos         | b    |
|    2 | dos         | c    |
|    2 | dos         | d    |
|    3 | tres        | a    |
|    3 | tres        | b    |
|    3 | tres        | c    |
|    3 | tres        | d    |
+------+-------------+------+
12 rows in set (0.00 sec)

Donde las dos primeras columnas corresponden a tu tabla y la última columna corresponde a la tabla dummy. Dale un vistazo para ver si es más o menos lo que necesitas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar