Difficulty: Moderate

Una matriz es un informe de la red como la representación de los datos. Tiene una fila de etiquetas, una columna de etiquetas y, en una red, los datos relativos a ambos fila y columna. Matriz de informes también se llaman cruzadas informes.

Una matriz tiene un informe del grupo de datos para las filas, un grupo de datos para las columnas, un grupo de datos entre productos y un grupo de datos como el valor transversal de producto. La cruz-grupo de productos representa todas las combinaciones posibles de fila y columna grupos.

Echemos un vistazo a un ejemplo. Supongamos que usted tiene una tabla llamada Inv_summary. Tiene tres columnas: Inv_date, Inv_status y Inv_value. Ahora, si desea generar un informe que muestra el valor total de abrir y cerrar las facturas de cada mes, como por ejemplo a continuación.

OPEN CLOSE mes

-------- ------------ ------------

Jan-07 20 19

Feb-07 0 153

Mar-07 18 56

Abril-07 43 0

May-07 93 0

Junio-07 79 0

Julio-07 112 0

Estos son los pasos para generar el informe.

  1. Crear una tabla Inv_summary.
  2. Crear una tabla Inv_summary (Inv_date fecha, Inv_status VARCHAR2 (1), Inv_value número);

  3. Inserte algunos datos en el cuadro Inv_summary.
  4. Insert into Inv_summary valores ('01-jan-07 ',' O ', 20,00);
    Insert into Inv_summary valores ('01-jan-07 ',' C ', a las 12.00 horas);
    Insert into Inv_summary valores ('10-jan-07 ',' C ', 7,00);
    Insert into Inv_summary valores ('05-FEB-07 ',' C ', 153,00);
    Insert into Inv_summary valores ( «12-mar-07 ',' C ', 48,00);
    Insert into Inv_summary valores ( «15-mar-07 ',' C ', 8,00);
    Insert into Inv_summary valores ( «23-mar-07 ',' O ', 18,00);
    Insert into valores Inv_summary (20-abr-07 ',' O ', 43,00);
    Insert into Inv_summary valores ('01-may-07 ',' O ', 61.00);
    Insert into Inv_summary valores ('01-may-07 ',' O ', 32.00);
    Insert into Inv_summary valores ('01-jun-07 ',' O ', 18,00);
    Insert into Inv_summary valores ('01-jun-07 ',' O ', 33,00);
    Insert into Inv_summary valores ('01-jun-07 ',' O ', 28,00);
    Insert into Inv_summary valores ('01-jul-07 ',' O ', 20,00);
    Insert into Inv_summary valores ('01-jul-07 ',' O ', 24,00);
    Insert into Inv_summary valores ('01-jul-07 ',' O ', 68,00);
    Cometer;

  5. Ejecute el siguiente comando SQL para generar el informe.
  6. SELECCIONAR to_char (to_date (to_char (inv_date, 'Mon-yy'), 'Mon-yy'), 'Mon-yy') mes,
    SUM (DECODE (inv_status, 'O', inv_value, 0)) Abrir,
    SUM (DECODE (inv_status, 'C', inv_value, 0)) Cerrar
    DE Inv_summary
    GROUP BY to_date (to_char (inv_date, 'Mon-yy'), 'Mon-yy')
    ORDER BY to_date (to_char (inv_date, 'Mon-yy'), 'Mon-yy')

    OPEN CLOSE mes

    --------- ------------ ------------

    Jan-07 20 19

    Feb-07 0 153

    Mar-07 18 56

    Abril-07 43 0

    May-07 93 0

    Junio-07 79 0

    Julio-07 112 0

    En el ejemplo anterior, hemos establecido que para que el grupo va invoice_status en el mes y el grupo va hacia abajo, formando una cuadrícula que muestra el valor total de las facturas. La clave en la parte anterior de comandos SQL es la función DECODE. Se convierte en hileras de columnas por el control de la Inv_status valor de la columna. Puede escribir un informe con la matriz de una o varias consultas. Un único informe de consulta es generalmente más eficiente que una consulta múltiple.

Average rating: