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 28-03-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Question Se puede hacer con SQL?

Hola... tengo 1 tabla ordenada por "grupo"
grupo texto valor
a la 2
a le 1
a li 4
b lo 1
b al 3

se puede montar mediante sql, de alguna forma, que el resultado de la consulta sea:
grupo texto1 valor1 texto2 valor2
a la 2 le 1
a li 4
b lo 1 al 3
y que siga ordenada por grupo.
gracias de antemano.
Responder Con Cita
  #2  
Antiguo 28-03-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola tarco32, la unica forma que se me ocurre es algo asi:

Código SQL [-]
Select t.grupo, (Select First 1 t1.texto ||'   '|| t1.valor From tabla t1
                       Where t1.grupo=t.grupo) as Valor1,
       (Select first 1 skip 1 t1.texto ||'   '|| t1.valor From tabla t1
        Where t1.grupo=t.grupo) as Valor2,
       (Select first 1 skip 2 t1.texto ||'   '|| t1.valor From tabla t1
        Where t1.grupo=t.grupo) as Valor3
From tabla t
group by t.grupo
order by t.grupo

solo que tienes que saber la cantidad de campos que necesitas, en caso de que algun grupo no tenga el segundo o tercer registro el resultado sera null, el ejemplo esta hecho en firebird.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 28-03-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Código SQL [-]
Select t.grupo, (Select First 1 t1.texto ||'   '|| t1.valor From tabla t1 Where t1.grupo=t.grupo) as Valor1,
                      (Select first 1 skip 1 t1.texto ||'   '|| t1.valor From tabla t1 Where t1.grupo=t.grupo) as Valor2,
                      (Select first 1 skip 2 t1.texto ||'   '|| t1.valor From tabla t1 Where t1.grupo=t.grupo) as Valor3
From tabla t
group by t.grupo
order by t.grupo
(Delphi 6 y BDE)
Gracias por tu ayuda.... imagino que "t" es mi tabla_origen y "t1" seria tabla_destino, pero el resultado final no sale como necesito:
Grupo Texto1 Valor1 Texto2 Valor2
como tendria que cambiar la sentencia...
Gracias
Responder Con Cita
  #4  
Antiguo 28-03-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por tarco35 Ver Mensaje
Gracias por tu ayuda.... imagino que "t" es mi tabla_origen y "t1" seria tabla_destino, pero el resultado final no sale como necesito:
Grupo Texto1 Valor1 Texto2 Valor2
como tendria que cambiar la sentencia...
Gracias
Hola de nuevo, t y t1 son alias hacia tu misma tabla, en el ejemplo estoy concatenando los dos campos, si quieres separado, solo tienes que devolver un solo campo en los select y darle su respectivo alias.

Código SQL [-]
Select t.grupo, (Select First 1 t1.texto From tabla t1
                       Where t1.grupo=t.grupo) as Texto1,
       (Select First 1 t1.valor From tabla t1
         Where t1.grupo=t.grupo) as Valor1,
       (Select first 1 skip 1 t1.texto From tabla t1
        Where t1.grupo=t.grupo) as Texto2,
       (Select first 1 skip 1 t1.valor From tabla t1
        Where t1.grupo=t.grupo) as Valor2
From tabla t
group by t.grupo
order by t.grupo

seguro hay una mejor forma de hacerlo, solo espera y ya nos iran corrigiendo.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 28-03-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
gracias por la ayuda... en cuento pueda lo pruebo otra vez y te comento.
Un saludo.
Responder Con Cita
  #6  
Antiguo 01-04-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
pues no me funciona... y no se porqué... me da errores de sentencia y que tiene que pertenecer al group... no se...
Responder Con Cita
  #7  
Antiguo 01-04-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por tarco35 Ver Mensaje
pues no me funciona... y no se porqué... me da errores de sentencia y que tiene que pertenecer al group... no se...
Pues con esa descripción "tan clara" de los errores que has dado, me temo que será un "poco" complicado ayudarte
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
Se puede hacer un else en un While not query1.eof Do? negrokau Varios 30 23-10-2011 00:29:16
¿¿Se puede Hacer?? NEG1414 C++ Builder 7 02-11-2008 22:13:10
Se puede hacer en cxGrid....? paladincubano Varios 3 19-02-2008 16:13:36
duda si se puede hacer alachaise MySQL 2 14-04-2005 14:23:20
se puede hacer armando Conexión con bases de datos 6 20-05-2004 05:12:26


La franja horaria es GMT +2. Ahora son las 14:40:28.


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