Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Reorganizar datos de una tabla (https://www.clubdelphi.com/foros/showthread.php?t=86965)

Neeruu 29-10-2014 00:19:55

Reorganizar datos de una tabla
 
Hola a todos...

Antes que nada, aclaro que no se bien que titulo ponerle al post.. si alguien se le ocurre otro nombre me dice y lo cambio

Necesito ayuda para poder acomodar los datos de la siguiente manera...
Puede ser en una consulta o procedimiento.... se me están quemando las pestañas y no encuentro la forma de hacerlo.

Tengo una tabla con los siguientes datos.

Código SQL [-]
1-->valor1-->0
2-->valor2-->0
3-->valor3-->0
4-->valor4-->0
5-->0-->valor5
6-->0-->valor6

Cantidad de filas puede variar.

Y yo necesito obtener de alguna forma los datos de la siguiente manera.

Código SQL [-]
1-->valor1-->valor5
2-->valor2-->valor6
3-->valor3-->0
4-->valor4-->0

Otro caso que se puede dar

Código SQL [-]
1-->valor1-->valor3
2-->valor2-->valor4
5-->0       -->valor5
6-->0       -->valor6

El orden de los datos es indiferente....

Desde ya muchas gracias.

Saludos Atte Neeruu!!!:)

ecfisa 29-10-2014 05:12:55

Hola Neruu.

Sinceramente no entiendo la relación entre los datos ni la lógica de la reorganización, ¿ Podrías exponerlo con mas detalle ?

Saludos :)

Neeruu 29-10-2014 05:32:40

Hola, esto es, a grandes rasgos lo que tengo que hacer....

Esto es lo que tengo que hacer....

Espero que se entienda...

Mirar el comentario 4 de
Cita:

leonardo_josue
Link


Saluda Atte Neeruu...:)

Neftali [Germán.Estévez] 29-10-2014 10:12:26

¿Y cual es el problema?
Justamente tú has dado la solución en ese último link.
:confused::confused:

fjcg02 29-10-2014 13:44:14

Hola,
en este caso sólo tienes que hacer una inner join de la tabla consigo misma con los campos apropiados.

Código SQL [-]
select T1.*, T2.Campo3 from tabla T1
inner join tabla T2 on ( T1.Campo3 = T2.Campo2 )

y a correr...

Saludos

Neeruu 30-10-2014 01:07:19

Estuve probando con el inner join y resulta que obtengo resultados repetidos....

Supongamos que de un lado del join tengo 3 registros y del otro lado del 2 registros

Datos Originales

Código SQL [-]
     id      Debe   Haber
1-->1-->valor1-->0
2-->1-->valor2-->0
3-->1-->valor3-->0
4-->1-->valor4-->0
5-->1-->0-->valor5
6-->1-->0-->valor6

Yo necesito que el resultado final sea de esta forma
Código SQL [-]
1-->valor1-->valor5
2-->valor2-->valor6
3-->valor3-->0
4-->valor4-->0

Pero obtengo esto:
Código SQL [-]
1-->valor1-->valor5
2-->valor1-->valor6
2-->valor2-->valor5
2-->valor2-->valor6
3-->valor3-->valor5
3-->valor3-->valor6
4-->valor4-->valor5
4-->valor4-->valor6

La consulta que estoy haciendo es la siguiente
Código SQL [-]
SELECT T1.DEBE
         , T2.HABER
FROM TABLA T1
INNER JOIN (SELECT T2.HABER
                  FROM TABLA T2
                  WHERE T2.ID = 1
                   AND T2.HABER <> 0) AS T2
ON(T1.ID = T2.ID)
WHERE T1.ID = 1
AND T1.DEBE <> 0

Neeruu 30-10-2014 03:54:01

Después de muchas pruebas y pruebas encontré la solución.

Lo que hago es cargar una tabla temporal ajustando los datos para poder hacer correctamente el inner join... (Entendí donde estaba mi error en la logica...)

Gracias por sus comentarios

Saluda Atte Neeruu!!! :)


La franja horaria es GMT +2. Ahora son las 21:37:33.

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