Pergunta

tabela de usuário contém os seguintes atributos (dateOfBirth, raça, sexo, ...). Nós gostaríamos de gerar um relatório no seguinte formato.

Year Race     All Male Female
2000 Asian    2000 1000 1000
2000 Hispanic 1000 500 500
2001 Asian    1500 700 800
2001 Hispanic 1300 400 900
...

Total 5800 2600 3200

Idealmente, eu gostaria de ver diferentes relatórios filtrados pelos parâmetros acima (por exemplo, todos os usuários masculino asiático no ano de 2000, todos os usuários asiáticos b / w anos 2000-2005, All comunidade hispânica em 2001). Qual seria a melhor maneira de buscar esses dados, como eu gostaria de evitar muitos hits para o banco de dados para construir esses dados. O quadro seria ideal na busca / representando esses dados

Foi útil?

Solução

Você não deu quaisquer detalhes sobre o back-end de banco de dados que será utilizado, mas, em geral, a forma mais eficiente para gerar esta informação será para processar a agregação de dados e filtragem no lado do banco de dados com o SQL e password correcta apenas o conjunto de resultados para o seu gerador de relatórios. Para o primeiro exemplo, o que parece ser uma agregação de todos os dados na tabela, o motor de banco de dados terá de classificar e processar todas as linhas, mas você vai ser melhor para fazê-lo lá em vez do cliente. Para consultas envolvendo subconjuntos de dados, certifique-se que você está indexado corretamente para suas consultas.

Outras dicas

Você pode ter um olhar para Jasper Reports:

http://www.docstoc.com/docs/2139263/Jasper -report-Tutorial

ou

http://www.javaworld.com /javaworld/jw-09-2002/jw-0920-opensourceprofile.html

É uma estrutura inteligente para gerar relatórios.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top