Ver Mensaje Individual
  #5  
Antiguo 18-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
Hola, imposible no pero bastante elaborado si. Creo q como te dice ñuño una tabla intermedia, o un rediseño te lo optimizaria bastante. Lo q yo tenia pensado para solucionarlo

Código SQL [-]
select (select idcontratos from contratos) as idcontratos,
         (select first(idparte) from partes where idcontratos = contratos.idcontratos) as id1, 
         (select first(idparte) from partes where idcontratos = contratos.idcontratos and idparte <> id1) as id2, 
         (select first(idparte) from partes where idcontratos = contratos.idcontratos and idparte <> id1 and idparte <> id2) as id3, 
         (select first(idparte) from partes where idcontratos = contratos.idcontratos and idparte <> id1 and idparte <> id2 and idparte <> id3) as id4, 
         (select empresa from partes where idparte = id1) as empresa1, 
         (select empresa from partes where idparte = id2) as empresa2, 
         (select empresa from partes where idparte = id3) as empresa3, 
         (select empresa from partes where idparte = id4) as empresa4, 
         fechaentrada ...

luego no mostrando los campos id1,id2,id3,id4. Seria mas elegante recoger todos los campos 'idparte where idcontratos = contratos.idcontratos' y colocarlos en un 'array', para que luego mediante un where in [...] seleccionar las empresas, o bien mediante un bucle usando for... Desconozco bien bien como funcionan los bucles y arrays en sql, por lo que no pongo nada mas, pero es probable que se pueda hacer asi. Saludos.

Última edición por coso fecha: 18-09-2008 a las 11:55:34.
Responder Con Cita