none
Fila como nombre de columna en tabla RRS feed

  • Pregunta

  • Hola como estan, quisiera por favor solicitarles una ayuda con un problema que tengo de una consulta, sucede que tengo un procedure con varios campos, en los cuales 2 de filas quiero que pasen como columna:

    por ejmplo mi tabla deberia quedar asi :

    Planta / PGr / POrder / de 31 a mas / Total
    -------------------------------------------------
    784     456     1224           1                1
    784     457     1225           1                1
                                          2                 2

    para eso tuve que crear 2 vistas sql y separarlas

    -- TABLA TEMPORAL 1
    ALTER view TablaDatosY
    AS
    (
    select   
     pais.id as pais,   
     planta.codigo as planta,   
     grupocompradores.codigo as grupocompradores,   
     sp.codigo as numeroDeCompra
    from    
     solicitudpedidodetalle spd   
     inner join solicitudpedido sp on sp.id = spd.solicitudpedido   
     inner join ZFSLO229CABECERA on ZFSLO229CABECERA.id = sp.archivoOriginal and ZFSLO229CABECERA.esActivo = 1   
     inner join planta on planta.id = spd.planta   
     inner join grupocompradores on grupocompradores.id = sp.grupocompra   
     inner join pais on pais.id = ZFSLO229CABECERA.pais   
    where   
     (ZFSLO229CABECERA.pais = 1)   
    group by   
     pais.id,   
     planta.codigo,  
     grupocompradores.codigo,   
     sp.codigo
    )

    -----// TABLA TEMPORAL 2

    ALTER view TablaDatosX
    as
    (
    select   
    pais.id as pais,
    restricciones.mensaje,
    count(restricciones.mensaje)as Total
    from    
     solicitudpedidodetalle spd   
     inner join solicitudpedido sp on sp.id = spd.solicitudpedido   
     inner join ZFSLO229CABECERA on ZFSLO229CABECERA.id = sp.archivoOriginal and ZFSLO229CABECERA.esActivo = 1   
     inner join sap3configuracioncotas as restricciones on restricciones.pais = 1 and (DATEDIFF(DAY, spd.fechaActualizacionSolicitud, ZFSLO229CABECERA.fechaRegistro) between restricciones.cotainferior and restricciones.cotasuperior)    
     inner join pais on pais.id = ZFSLO229CABECERA.pais
    group by   
    restricciones.mensaje,
    pais.id
    )

    Hasta aqui tengo los Datos separados, pero digamne como podria el registro de la 2da vista como cabecera en una 3ra Vista donde se creara la Matriz.

    nose si pudieran ayudarme, escuche sobre cursores(pero nose usar cursores :S).

    Espero me puedan ayudar please...ya que es un pedido que concierne a mi trabajo actual.

    Saludos y Gracias.
    viernes, 29 de enero de 2010 20:49

Respuestas

  • Hola.

    Si lo que buscas es convertir las filas en columnas, te sugiero que utilices la cláusula PIVOT (http://technet.microsoft.com/es-es/library/ms177410.aspx), sin necesidad de usar vistas ni (menos aún) cursores. Con el código que has suministrado me es difícil hacerme una idea de la estructura de cada tabla y, por tanto, de la instrucción concreta que necesitas.

    Si con la ayuda del link que te paso no lograras construir tu sentencia, pásanos scripts de creación de cada tabla y datos de ejemplo de cada una de ellas, a ver si podemos ayudarte.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    sábado, 30 de enero de 2010 9:20
    Moderador