Dúvida sobrw VIEW

Firebird

11/02/2004

Caros,
li praticamente todas as mensagens postadas sobre VIEW neste forum, mas nao consegui sanar uma pequena dúvida.

Criei esta VIEW:

CREATE VIEW PRODUTOSTOP10(
CODIGOPRODUTO,
DESCRICAO,
QDE,
ANO)
AS
select distinct codigoproduto, descricao p, sum(qde), EXTRACT(YEAR FROM DATAEMISSAO) from entsaiprodutos
left join produtos p on(p.codigo=entsaiprodutos.codigoproduto)
where ENTSAIPRODUTOS.entsai = ´E´
group by codigoproduto, descricao, qde, DATAEMISSAO;

--
Dúvida, toda vez que eu fizer um lançamento em ENTSAIPRODUTOS, automaticamente a view é atualizada ? (parece q sim), se for isso, o banco iria crescer demais ao longo do tempo desnecessariamente (pq nao é sempre q irei utilizar a view).

Motivo pelo qual preciso de uma VIEW.
:lol:

Montei um grafico, que mostra os 10 produtos mais vendidos por ano.
SELECT <campos>, sum(qde) from <tabela>... group by...
precisava ordernar pela campo calculado sum(qde) DESC (para pegar os 10 mais vendidos), mas o fb nao aceita. :(

li que a solucao entao seria criar uma view. Já pensou, o usuario resolve ver o grafico umas 3/4/5 vezes ao ano, e a view fica armazenando todos os lancamentos ( :roll: inchando o banco).

Eu me equivoquei e tem outra solucao ou é assim mesmo ?

Utulizo FB1.5


Pedih

Pedih

Curtidas 0

Respostas

Maicongabriel

Maicongabriel

11/02/2004

Nãooo :shock:

[b:daaa621109]pedih[/b:daaa621109], a sua View cria uma ´Tabela Virtual´ de nome [b:daaa621109]PRODUTOSTOP10[/b:daaa621109]; Mas ela não incrementa dados nessa ´Nova Tabela´.
Qualquer Select que você fizer sobre ela, esta na verdade fazendo sobre a tabela que você utilizou para montar a View, no caso [b:daaa621109]ENTSAIPRODUTOS [/b:daaa621109]. Qualquer dado que você atualizar sobre a [b:daaa621109]PRODUTOSTOP10[/b:daaa621109], será atualizada na verdade salvo na tabela [b:daaa621109]ENTSAIPRODUTOS [/b:daaa621109]! :wink:


GOSTEI 0
POSTAR