
Eu uso o LibreOffice Base para criar relatórios semanais. Tenho uma tabela (chamada time_spent
) que contém muitos dados normalizados e estou usando visualizações para fazer o processamento necessário para produzir os relatórios necessários.
Toda semana eu adiciono novos dados a essa tabela e quero exportar novos relatórios apenas para aquela semana.
Em vez de recriar todas as visualizações que estão sendo usadas para criar meu relatóriotodosemana, eu esperava criar uma visualização chamada time_spent_selection
, que é essencialmente SELECT * FROM "time_spent" WHERE "week" = '2015-04'
, e usá-la para montar todas as visualizações subsequentes. Toda semana teria apenas que alterar essa WHERE
cláusula e obter automaticamente os relatórios da semana certa.
No entanto, a base do LibreOffice nega salvar quaisquer alterações feitas na time_spent_selection
visualização com a seguinte mensagem de erro:
A tabela é referenciada pela visualização: bugs na instrução [DROP VIEW "time_spent_selection"]
Aqui bugs
está uma das visões que faz referência time_spent_selection
em sua definição.
Pergunta:
Como posso forçar a modificação desta visualização, da qual dependem outras visualizações?
Entendo que - se isso fosse possível - todas as visualizações teriam que ser recalculadas, e é exatamente isso que eu quero.
Responder1
Esta pode ser uma limitação do banco de dados backend, que por padrão é o HyperSQL Database (HSQLDB) versão 1.8 - se você estiver usando o backend padrão, a documentação está emhttp://www.hsqldb.org/doc/1.8/guide/ch09.htmle não possui nada como ALTER VIEW ou REPLACE VIEW. Você tem que usar o DROP VIEW, que só é permitido se não houver dependências.
Você tem a opção de atualizar para a versão atual do HSQLDB (versão 2.3), que suporta a instrução ALTER VIEW (http://hsqldb.org/doc/guide/guide.html#dbc_view_creation). A GUI provavelmente ainda não suportaria a transação, mas você poderia usar a janela Ferramentas->SQL para emitir diretamente o comando ALTER VIEW para o banco de dados. Instruções sobre como atualizar o componente de banco de dados para a versão 2.3 estão neste tópico do fórum:[Tutorial] Dividindo um "banco de dados HSQL incorporado"
Como alternativa, em vez de codificar uma data específica no SQL da visualização, faça com que a visualização faça referência a uma tabela de filtro/fictícia para a data. Em seguida, você pode simplesmente abrir a tabela "reportDate" de uma coluna e uma linha e alterar a data a cada semana sem tocar na visualização.