Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Consulta de referencias cruzadas (https://www.clubdelphi.com/foros/showthread.php?t=12840)

jzginez 29-07-2004 09:50:28

Consulta de referencias cruzadas
 
Hola a todos estoy usando firebird 1.5 y necesito hacer una consulta de referencia cruzadas, un ejemplo de los datos que tengo es:

Tabla TFolios
id........Bulto....id_talla.......cantidad
1..........1.........32................44
2..........2.........33................44
3..........3.........34................44
4..........4.........35................44
5..........5.........36................44
6..........1.........33................44
7..........2.........32................44
8..........3.........35................44
9..........4.........34................44

buscando en el historial del foro he logrado hacer la siguiente consulta:

Código SQL [-]
SELECT DISTINCT TCORTES.ID_ESTILO, T1.ID_CORTE, TCORTES.CORTECOMP, T1.FECHA, T1.ID, T1.BULTO,
 ( SELECT CANTIDAD FROM TFOLIOS T2 WHERE T2.ID = T1.ID AND ID_TALLA = 32 ) S,
 ( SELECT CANTIDAD FROM TFOLIOS T2 WHERE T2.ID = T1.ID AND ID_TALLA = 33 ) M,
 ( SELECT CANTIDAD FROM TFOLIOS T2 WHERE T2.ID = T1.ID AND ID_TALLA = 34 ) L,
 ( SELECT CANTIDAD FROM TFOLIOS T2 WHERE T2.ID = T1.ID AND ID_TALLA = 35 ) XL,
 ( SELECT CANTIDAD FROM TFOLIOS T2 WHERE T2.ID = T1.ID AND ID_TALLA = 36 ) XLT
FROM TFOLIOS T1
   INNER JOIN TCORTES ON (T1.ID_CORTE = TCORTES.CORTE)
ORDER BY t1.ID

y obtengo el siguiente resultado:
ID_ESTILO...ID_CORTE...CORTECOMP...FECHA........ID...BULTO...S...M...L...XL...XLT
MIESTILO....qaweqe....qaweqeBEIPRU..25/07/2004..1.......1.....44...0...0...0...0
MIESTILO....qaweqe....qaweqeBEIPRU..25/07/2004..2.......2.......0.44...0...0...0
MIESTILO....qaweqe....qaweqeBEIPRU..25/07/2004..3.......3.......0...0.44...0...0
MIESTILO....qaweqe....qaweqeBEIPRU..25/07/2004..4.......4.......0...0...0.44...0
MIESTILO....qaweqe....qaweqeBEIPRU..25/07/2004..5.......5.......0...0...0...0.44
qwert.........asdfg.......asdfgBLUAZU....20/05/2004..6.......1.......0..44...0...0...0
qwert.........asdfg.......asdfgBLUAZU....20/05/2004..7.......2......44...0...0...0...0
qwert.........asdfg.......asdfgBLUAZU....20/05/2004..8.......3........0...0...0.44...0
qwert.........asdfg.......asdfgBLUAZU....20/05/2004..9.......4........0...0.44...0...0

Las tablas y campos que uso en la consulta y no comento en la estructura de la tabla es porque siento que no afectan su uso en lo que a mi duda se refiere.

Ahora bien mi duda es la siguiente (Espero poder explicarme bien :D )

como veran en mi consulat indico que mis campos resultado del select se llamen S, M, L, XL y XLT Segun el ID_Talla pero tengo otra tabla que se llama TTallas con la siguiente estructura
id.....Talla
32......S
33......M
34......L
35......XL
36......XLT

y estos datos yo los invente para probar el sistema realmente no se cual va a ser el id de cada talla ni cuantos registros tendra la tabla TTallas, lo que necesito es si alguien me puede dar una orientación de como puedo hacer que mi subconsulta se repita n veces segun el numero de registros en la tabla TTallas y que tome el campo Talla y use su contenido como nombre del campo resultado de la subconsulta.

El campo id de TTAllas es autonumerico

Gracias.

guillotmarc 29-07-2004 17:41:17

Hola.

Puedes generar la sentencia mediante código Delphi, y cuando la tengas montada (con los códigos adecuados en las subconsultas), la lanzas al Servidor.

Saludos.

jzginez 30-07-2004 04:38:25

Como siempre Marc muchas gracias


La franja horaria es GMT +2. Ahora son las 14:42: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