Necesito Ayuda con consulta SQL (Que novedad ¿eh?)

tema enviado por Pedro en SQL
tema iniciado el 07/08/2007

A ver si me explico, se trata de una Base de Datos de componentes de maquinaria, tengo una tabla de piezas en la que guardo tres campos GUID | Referencia de pieza | Descripción de pieza, y otra tabla en la que guardo el despiece de las máquinas los campos son GUID | Referencia Máquina | ID_Pieza 1 | ID_Pieza 2 | .... | ID_Pieza 30

Quiero hacer una consulta (y este es mi problema!) que me muestre la Referencia de la máquina | Referencia Pieza 1 | Descripcion Pieza 1 | Referencia Pieza 2 | Descripcion Pieza 2 | .... | Referencia Pieza 30 | Descripcion Pieza 30

El Comando que uso (Ver más abajo) me funciona sólo si yo tengo descritas las 30 piezas para una máquina, si sólo tengo 20 (ó cualquier número <30) piezas la consulta no me lo incluye.

Alguien puede darme alguna pista ? GRACIAS

Uso:

"   strCommand=_T("SELECT tbl_REFS.sREF as Referencia, tbl_REFS.sDESC as Descripción");
   for(i=1;i<31;i++)
   {
    strTemp.Format(", C%d.sREF AS Componente_%d, C%d.sDESC AS Desc_Compon_%d",i,i,i,i);
    strCommand+=strTemp;
   }
   strCommand=strCommand + _T(" FROM tbl_REFS");
   for(i=1;i<31;i++)
   {
    strTemp.Format(" ,tbl_COMPONENTES as C%d",i);
    strCommand+=strTemp;
   }
   for(i=1;i<31;i++)
   {
    if (i==1)
    {
     strCommand += _T(" WHERE");
    }
    else
    {
     strCommand += _T(" AND");
    }
   strTemp.Format(" tbl_REFS.idCOMP%02d=C%d.ID_COMPONENTE",i,i);
    strCommand+=strTemp;
"

"SELECT tbl_REFS.sREF as Referencia, tbl_REFS.sDESC as Descripción, C<num>.sREF AS Componente<num>., C<num>.sDESC AS Desc_Compon<num> FROM tbl_REFS ,tbl_COMPONENTES as C<num> WHERE tbl_REFS.idCOMP<num>=C<num>.ID_COMPONENTE AND tbl_REFS.idCOMP<num>=C<num>.ID_COMPONENTE"....