
Uma matriz relatório é uma grade-como representação dos dados. Possui uma linha de rótulos, etiquetas e de uma coluna, em um grid, dados relativos a ambos os linha e coluna. Matrix relatórios são também chamados relatórios cruzada.
Uma matriz relatório tem um grupo de dados de filas, um grupo de dados para as colunas, um grupo de dados cruzados produto e um grupo de dados como o valor para aquisição de produto. O cross-grupo de produtos representa todas as combinações possíveis de linha e coluna grupos.
Agora, vamos dar uma olhada em um exemplo. Suponha que você tenha uma tabela chamada Inv_summary. Possui três colunas: Inv_date, Inv_status e Inv_value. Agora, pretende gerar um relatório que mostra o valor total das facturas de abrir e fechar cada mês, como por exemplo a seguir.
Abrir fechar mês
-------- ------------ ------------
Jan-07 20 19
Fevereiro-07 0 153
Mar-07 18 56
Abr-07 43 0
Maio-07 93 0
Jun-07 79 0
Jul-07 112 0
Aqui estão os passos para gerar o relatório.
- Crie uma tabela Inv_summary.
- Inserir alguns dados em Inv_summary tabela.
- Sql execute o seguinte comando para gerar o relatório.
Criar tabela Inv_summary (Inv_date data, Inv_status varchar2 (1), Inv_value número);
Inserir Inv_summary em valores ('01-jan-07 ',' O ', 20,00);
Inserir Inv_summary em valores ('01-jan-07 ',' C ', 12,00);
Inserir Inv_summary em valores ('10-jan-07 ',' C ', 7,00);
Inserir Inv_summary em valores ('05-fev-07 ',' C ', 153,00);
Inserir Inv_summary em valores ('12-mar-07 ',' C ', 48,00);
Inserir Inv_summary em valores ('15-mar-07 ',' C ', 8,00);
Inserir Inv_summary em valores ('23-mar-07 ',' O ', 18,00);
Inserir Inv_summary em valores ('20-Abr-07 ',' O ', 43,00);
Inserir Inv_summary em valores (maio-'01-07 ',' O ', 61.00);
Inserir Inv_summary em valores (maio-'01-07 ',' O ', 32.00);
Inserir Inv_summary em valores ('01-jun-07 ',' O ', 18,00);
Inserir Inv_summary em valores ('01-jun-07 ',' O ', 33,00);
Inserir Inv_summary em valores ('01-jun-07 ',' O ', 28,00);
Inserir Inv_summary em valores ('01-jul-07 ',' O ', 20,00);
Inserir Inv_summary em valores ('01-jul-07 ',' O ', 24,00);
Inserir Inv_summary em valores ('01-jul-07 ',' O ', 68,00);
Commit;
SELECT to_char (to_date (to_char (inv_date, «Mon-aa"), "Mon-aa"), "Mon-aa ') Mês,
sum (decodificar (inv_status, 'O', inv_value, 0)) Abrir,
sum (decodificar (inv_status, 'C', inv_value, 0)) Fechar
DESDE Inv_summary
GRUPO DE to_date (to_char (inv_date, «Mon-aa"), "Mon-aa ')
ORDER BY to_date (to_char (inv_date, «Mon-aa"), "Mon-aa ')
Abrir fechar mês
--------- ------------ ------------
Jan-07 20 19
Fevereiro-07 0 153
Mar-07 18 56
Abr-07 43 0
Maio-07 93 0
Jun-07 79 0
Jul-07 112 0
No exemplo acima, temos o criou para que o grupo vai invoice_status em todo o mês eo grupo vai para baixo, formando uma rede que mostra o valor total das faturas. A chave na parte superior do comando SQL é DECODE função. Ele converte as linhas em colunas, verificando o valor da coluna Inv_status. Você pode escrever um relatório com matriz única ou múltiplas buscas. Um relatório de pesquisa único é geralmente mais eficiente do que um múltiplo consulta.

Delicious
Digg
Google
Yahoo