Anuncio

Colapsar
No hay anuncio todavía.

Transponer filas a columnas

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Transponer filas a columnas

    Buen día, tarde o noche, llevo 5 años usando SAP B1 versiones 9 al 10.00, hace un par de meses de interese en realizar consultas en SAP B1 10.0, generé la siguiente consulta

    SELECT
    T0.[DocNum] AS 'ID SAP',
    T0.[CardCode] AS 'CODIGO',
    T0.[CardName] AS 'NOMBRE PROVEEDOR',
    T0.[U_FacSerie] AS 'SERIE 1',
    T1.[U_FacFecha],
    T0.[U_TIPO_DOCUMENTO],
    T1.[U_FacSerie] AS 'SERIE 2',
    T1.[U_FacNum] AS 'No. FAC.',
    T1.[U_FacNit],
    T1.[U_FacNom],
    T1.[U_TipoA],
    T1.[TaxCode],
    T1.[LineTotal]

    FROM OPCH T0 INNER JOIN PCH1 T1 ON T0.[DocEntry] = T1.[DocEntry]

    WHERE T0.[DocDate] >=[%0] AND T0.[DocDate] <=[%1] AND T0.[U_STATUS_NC] = 'V' AND T1.[U_TipoA] <> 'N' AND T0.[U_TIPO_LIQUIDACION] <> 0

    Haga clic en la imagen para ver una versión más grande

Nombre:	image.png
Visitas:	160
Size:	122,5 KB
ID:	38481
    y me genera está consulta, sin embargo, la columna definida como TIPO DE ARTICULO, quisiera que se pasara a columnas por lo diferentes tipos que hay

    Haga clic en la imagen para ver una versión más grande

Nombre:	image.png
Visitas:	117
Size:	22,5 KB
ID:	38482
    como en este Excel.

    de antemano agradezco la sugerencias y comentarios​

  • #2
    Hola,

    el tema es que para hacer lo que dices tienes que hacer un subselect por columna. Esto sería para poder mostrar el indicador filtrado por cada tipo de artículo. Esos tipos de artìculos pueden variar? porque sino también puedes poner un IF por Columna.
    Editado por última vez por juanma; 07/09/2023, 08:44:44.

    Comentario


    • #3
      Hola Juan, los tipo de artículos no varían, son tipos de artículos fijos,

      B = Bien
      S = Servicio
      BA = Bien Activo
      BC = Bien Combustible
      E = Exento
      N = No aplica

      Comentario


      • #4
        Bien, entonces lo mejor es hacer 7 columnas:

        TotalB = Bien - (IF T1.[U_TipoA] = 'B' then T1.[LineTotal] else 0) as TotalB.
        totalS = Servicio - (IF T1.[U_TipoA] = 'S' then T1.[LineTotal] else 0) as TotalS.
        totalBA = Bien Activo - (IF T1.[U_TipoA] = 'BA' then T1.[LineTotal] else 0) as TotalBA.
        totalBC = Bien Combustible - (IF T1.[U_TipoA] = 'BC' then T1.[LineTotal] else 0) as TotalBC.
        totalE = Exento - (IF T1.[U_TipoA] = 'E' then T1.[LineTotal] else 0) as TotalE.
        totalN = No aplica​ - (IF T1.[U_TipoA] = 'N' then T1.[LineTotal] else 0) as TotalN.

        No recuerdo si en B1 también permite el IF sino deberías hacerlo con un CASE.

        Comentario

        Trabajando...
        X