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
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 11:45:35.


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