SQL - Agregar registros a una consulta

 
Vista:

Agregar registros a una consulta

Publicado por Jorge (6 intervenciones) el 18/11/2015 22:51:10
Buenso dias Estimados

Estoy armando un reporte rpx con consulta SQL y luego de armar la tabla final mediante algunos JOINs necesito a agregar campos en una consulta SQL para completar la secuencialidad de un numero, la situacion es la siguiente, dada la siguiente tabla:

Cliente Remito
Emp A 001
Emp B 002
Emp C 005

Tengo que agregar los numeros de remitos faltantes, en este caso el 003 y 004 para que la tabla quede de la siguiente forma:

Cliente Remito
Emp A 001
Emp B 002
x 003
x 004
Emp C 005

Por supuestoesto lo tengo que hacer sin escribir las bases originales y agregarlos en las tabla temporal que arme con los JOINs

Toda ayuda es bienvenida y super agradecida.
Desde ya gracias

Saludos
Jorge
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Agregar registros a una consulta

Publicado por leonardo_josue (1173 intervenciones) el 19/11/2015 16:35:54
Hola Jorge:

Ningún manejador de BD's puede "inventar" información... sql es un lenguaje de consulta, por lo tanto trabaja sólo sobre información que ya existe en la BD's... si quieres agregar los remitos 003 y 004 que no existen en tu tabla, lo debes hacer de manera programática, o en su defecto tiene que crear una tabla que contenga todos los remitos que pueden existir y hacer un LEFT JOIN, es decir, algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
mysql> SELECT * FROM tabla1;
+---------+--------+
| Cliente | Remito |
+---------+--------+
| Emp A   | 001    |
| Emp B   | 002    |
| Emp C   | 005    |
+---------+--------+
3 rows in set (0.00 sec)
 
mysql> SELECT* FROM tabla_remitos;
+--------+
| remito |
+--------+
| 001    |
| 002    |
| 003    |
| 004    |
| 005    |
+--------+
5 rows in set (0.00 sec)
 
mysql> SELECT tabla1.Cliente, tabla_remitos.remito
    -> FROM tabla_remitos
    -> LEFT JOIN tabla1 ON tabla_remitos.remito = tabla1.remito
    -> ORDER BY 2;
+---------+--------+
| Cliente | remito |
+---------+--------+
| Emp A   | 001    |
| Emp B   | 002    |
| NULL    | 003    |
| NULL    | 004    |
| Emp C   | 005    |
+---------+--------+
5 rows in set (0.00 sec)

haz la prueba y nos comentas.

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

Agregar registros a una consulta

Publicado por Jorge (6 intervenciones) el 19/11/2015 17:54:43
Muchas gracias por la aclaracion.

Pero no puedo escribir tablas en el disco, ya que se trata de un reporte y no puedo afectar lo grabado. Hay manera de hacer la tabla con todos los remitos en memoria como parte de la consulta? o debo ir si o si a la parte programtica (lo puedo resolver con un script)?

Gracias
Jorge
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