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

Hacer una consulta que devuelva 10 registros en blanco

Estas en el tema de Hacer una consulta que devuelva 10 registros en blanco en el foro de Oracle en Foros del Web. Tengo que rellenar una tabla. Con 10 huecos. Pero no siempre tengo los 10 registros... a veces tengo 2, 4, 6 o 9.... y queria ...
  #1 (permalink)  
Antiguo 28/11/2008, 11:27
DMR
 
Fecha de Ingreso: noviembre-2003
Mensajes: 105
Antigüedad: 20 años, 5 meses
Puntos: 0
Hacer una consulta que devuelva 10 registros en blanco

Tengo que rellenar una tabla.

Con 10 huecos.

Pero no siempre tengo los 10 registros... a veces tengo 2, 4, 6 o 9.... y queria saber como hacer para que la consulta de SQL siempre devuelva 10 filas. Cuando no hay que devuelva blancos
  #2 (permalink)  
Antiguo 28/11/2008, 20:31
 
Fecha de Ingreso: marzo-2008
Ubicación: Euskadi
Mensajes: 64
Antigüedad: 16 años
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

Hola DMR,

no he entendido bien lo que quieres. Dices 'rellenar una tabla con 10 huecos': ¿es una INSERT de una SELECT que devuelve 10 registros? ¿siempre tiene que devolver 10 registros haya los datos que haya en la tabla?

¿Podrías poner un ejemplo?

Un saludo.
  #3 (permalink)  
Antiguo 29/11/2008, 05:57
DMR
 
Fecha de Ingreso: noviembre-2003
Mensajes: 105
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

La cosa es imagina que tienes una tabla de un formulario con 10 huecos y la rellenas haciendo:

select nombre from empleados where sector = 'Naval'

Eso devuelve 10 filas.

Entonces al rellenar la tabla se rellena guay.

pero si haces select nombre from empleados where sector = 'Automocion'

Y te salen solo 3 empleados, lo que quiero es que la tabla se rellene con blancos.

Cada columna de la tabla se rellena con un registro de la BD y lo que necesitaba es que siempre haya 10 columnas para que se vea bonito.

De todos modos creo que ya lo consegui.

Hice esto:

select nombre from empleados where sector = 'Naval'
union
(select nombre from (select null nombre from empleados where rownum<=:parametro))

order by nombre

Algo asi y me parece que funciona.
  #4 (permalink)  
Antiguo 29/11/2008, 09:59
 
Fecha de Ingreso: marzo-2008
Ubicación: Euskadi
Mensajes: 64
Antigüedad: 16 años
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

Hola DMR,

la consulta que has puesto no veo que funcione:

- Si dos empleados tienen el mismo nombre solamente vas a obtener uno (hacer una UNION es como hacer DISTINCT).

- Solamente estás añadiendo un registro nulo independientemente del valor de :parametro.

A ver si lo he entendido, ¿quieres que salgan x registros independientemente de la cantidad de registros que devuelva la consulta original? Es decir si hay 3 registros con datos que saque esos 3 más (x-3) con nulos? Y si hubiera más de x registros con datos, que saque x solamente en cualquier caso?

Un saludo.
  #5 (permalink)  
Antiguo 29/11/2008, 11:25
DMR
 
Fecha de Ingreso: noviembre-2003
Mensajes: 105
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

Cita:
Iniciado por MutenRo Ver Mensaje
Hola DMR,

la consulta que has puesto no veo que funcione:

- Si dos empleados tienen el mismo nombre solamente vas a obtener uno (hacer una UNION es como hacer DISTINCT).

- Solamente estás añadiendo un registro nulo independientemente del valor de :parametro.

A ver si lo he entendido, ¿quieres que salgan x registros independientemente de la cantidad de registros que devuelva la consulta original? Es decir si hay 3 registros con datos que saque esos 3 más (x-3) con nulos? Y si hubiera más de x registros con datos, que saque x solamente en cualquier caso?

Un saludo.

La consulta que te puse con un union all funciona, pq lo he probado... (aunque quizas se me pase algo y por eso igual esta mal).

Si, me has entendido bien.

Tienes alguna idea?
  #6 (permalink)  
Antiguo 17/12/2008, 09:46
 
Fecha de Ingreso: agosto-2007
Mensajes: 3
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

Que tal, perdona que los moleste, phe visto tu post y tengo un problema similar.

Tengo una tabla de pedidos y cada pedido tiene un forma de pago y unos gastos de envio que son fijos para cada pedido

He creado una vista que me devuleve los registros de Gastos de envio ( es decir todos los pedido pendientes ya que siempre para cada pedido hay un gasto de envio) y otra que me devueleve todos los pedidos pendientes en el que el tipo de pago es un contrarrembolso", hasta aqui todo bien.

pero como no todos los pedidos tienen Contrerrembolso ya que unos se pagan con otro metodo, la tabla de "gastosenvio" puede tener 5 registros y la tabla de "contrarrembolso" solo 2, lo que necesito es rellenar la tabla de "contrarrembolso" con registros nulos para que contenga tambien el mismo numero de registros que "Gastosenvio".

Respetando que cada pedido tiene un ID y que cada gastoenvio y cada contrarrembolso va ligado a ese ID de pedido.

Saludos y espero puedan ayudarme
  #7 (permalink)  
Antiguo 18/12/2008, 07:31
DMR
 
Fecha de Ingreso: noviembre-2003
Mensajes: 105
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

te miro luego como hice yo y te lo pongo aqui
  #8 (permalink)  
Antiguo 18/12/2008, 08:57
 
Fecha de Ingreso: marzo-2008
Ubicación: Euskadi
Mensajes: 64
Antigüedad: 16 años
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

Hola zidannee,

A raíz de este post planteé un reto donde se proponía la resolución de este problema. Por si te sirve, el post es:

http://www.forosdelweb.com/f100/reto...premio-649339/

Un saludo.
  #9 (permalink)  
Antiguo 18/12/2008, 09:25
DMR
 
Fecha de Ingreso: noviembre-2003
Mensajes: 105
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

lo resolvi de esta forma:

te lo pongo con un ejemplo:

tenia una tabla de codigo y nombre que devolvia 4 registros de la tabla1.

Pero si queria que la consulta tuviese siempre 8 registros le haci un join con esta otra

Código:
select codigo 
from 
     (select variableCodigo codigo
      from tabla2
      where rownum <= variableCantidad
      )
en este casi variableCantidad le pasaría 4

La idea es esa. Tienes que tener en cuenta que:
variableCodigo es un parametro igual al codigo de la tabla1.
Que la tabla2 tiene en general como mínimo el numero de registros que hay en variableCantidad.

Se que es un lio, pero funciona.
  #10 (permalink)  
Antiguo 19/12/2008, 20:31
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Hacer una consulta que devuelva 10 registros en blanco

yo alguna vez perseguia tambien el ciclar la consulta sin necesidad de registros, pero para lograr el ciclo no he podido eliminar el usar una tabla con al menos la cantidad de registros que deseas se cicle, y viendo tu solucion tampoco es necesario una subconsulta, checate este ejemplo

select sysdate
from dual,
(select 1 from tab)
where rownum <= 10
__________________
Blogzote.com :-) Mi blog
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




La zona horaria es GMT -6. Ahora son las 12:56.