Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2007
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 22
altp Va por buen camino
Repetir valor

Buenos dias foro.

Tengo la siguiente consulta:
Código SQL [-]
Select CODIGO_BARRA from ART_TAL_COL
where CODIGO_ARTICULO = '0001' and TALLA = 40

Mi problema es que solo me devuelve un valor (en realidad es lo que tiene que devolver), pero me gustaría saber, si mediante algún parámetro le puedo decir que el resultado me lo devuelva 2, 3, 4, etc veces.

Me devuelve un valor, por ejemplo, realizo la consulta y devuelve:
80002002334340

Pero yo quiero que me devuelva:
80002002334340
80002002334340

Se puede hacer esto de alguna manera?

Gracias.
Responder Con Cita
  #2  
Antiguo 27-06-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Hola:

No se si utilizas Firebird o similar.... Por un Select creo que no puedes hacer eso ??
Sin embargo con un procedure en la base de datos en el que recibiera el código, la talla y el número de repeticiones que quieres, eso si sería viable....
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #3  
Antiguo 27-06-2007
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 22
altp Va por buen camino
Gracias por responder.

Utilizo Firebird.

Lo del procedimiento más o menos lo sabía, lo que pasa es que lo necesito en una select.

No sé si con un 'count', 'having', 'rows', etc se podría hacer algo
Lo estoy probando pero nada de nada.
Responder Con Cita
  #4  
Antiguo 27-06-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Te pongo un ejemplo:

Código SQL [-]
CREATE PROCEDURE REPETITIVO(CODIGO VARCHAR(4) , TALLA INTEGER,REPETICION SMALLINT)
RETURNS( VALOR VARCHAR(14) )
AS
DECLARE VARIABLE TEMPORAL SMALLINT;
BEGIN
Temporal = 0;
For Select Codigo_Barra From ART_TAL_COL
Where CODIGO_ARTICULO = :Codigo and TALLA = :Talla
Into :Valor
Do
While (Temporal < :Repeticion) Do
Begin
Temporal = Temporal + 1;
  SUSPEND;
End
END


Ejemplo de llamada:
Código SQL [-]
Select * From PROCEDURE REPETITIVO('0001',40,7);
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #5  
Antiguo 27-06-2007
mensana mensana is offline
Miembro
 
Registrado: sep 2006
Posts: 69
Poder: 19
mensana Va por buen camino
Cita:
Empezado por altp
...que el resultado me lo devuelva 2, 3, 4, etc veces.
Select ...
from ...
where ...

UNION ALL

select ...
from ...
where ...

Es decir, repetir la misma select varias veces
Responder Con Cita
  #6  
Antiguo 27-06-2007
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 22
altp Va por buen camino
Gracias ArdiIIa por responder. (También a tí mensana)

Lo acabo de probar con el procedimiento almacenado y funciona estupendamente, pero preferiría con un select a secas.

Lo de las uniones de mensana no me ha funcionado.

Si teneis alguna solución mejor os lo agradeceré.

De momento me quedo con el procedimiento.
Responder Con Cita
  #7  
Antiguo 27-06-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 22
gluglu Va por buen camino
Pues a mi en Interbase al menos me funciona perfectamente :

Código SQL [-]
Select CODIGO_BARRA from ART_TAL_COL
where CODIGO_ARTICULO = '0001' and TALLA = 40
Union All
Select CODIGO_BARRA from ART_TAL_COL
where CODIGO_ARTICULO = '0001' and TALLA = 40
Union All
Select CODIGO_BARRA from ART_TAL_COL
where CODIGO_ARTICULO = '0001' and TALLA = 40

y me da el resultado 3 veces repetido.

Bastaría que en tu código hiceras un For While Loop y añadieras el texto que ya tuvieras tantas veces como quieras obtener el resultado.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #8  
Antiguo 27-06-2007
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 22
altp Va por buen camino
Lo probé, pero solo con UNION, me faltaba poner el ALL.

De momento la opción que más me ha gustado es la del procedimiento almacenado.

Gracias de todas formas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
no repetir 2 comas(,) en un edit CarlosHernandez Varios 6 14-05-2007 19:28:15
Repetir columnas a la izq. al imprimir mayte mtz SQL 2 26-09-2006 20:07:24
Es sano repetir? Johnny Q OOP 4 12-07-2005 22:09:51
Repetir registro segun valor de un campo yusnerqui SQL 2 13-03-2005 03:14:40
no repetir campos ebeltete SQL 5 22-05-2003 05:32:53


La franja horaria es GMT +2. Ahora son las 20:00:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi