Execultar uma function dentro de uma View tem como? Postgres

03/02/2016

3

Tenho esta function select check_estoquef();

É um castilho para atualizar a tabela "estoque_lancto".

Precisava que ela carregava primeiro a select check_estoquef(); antes de carregar a "Viewe_x50"
Alguma dica?

function:
“select check_estoquef();”
Novato.


CREATE OR REPLACE VIEW public.view_x50(
codigofilial,
nomeempresa,
custo,
data,
pessoa,
custo_medio,
bico,
preco_unit,
vendedor,
turno,
quantidade,
valor,
codigoproduto,
nomeproduto,
codigodeposito,
nomedeposito,
codigogrupo,
nomegrupo,
grid,
documento,
mlid,
operacao,
comissaogrupo,
comissaoproduto,
perc_imposto,
horavenda,
seq,
usuario)
AS
SELECT empresa.codigo AS codigofilial,
empresa.nome AS nomeempresa,
estoque_lancto.custo_medio * lancto.quantidade AS custo,
lancto.data,
lancto.pessoa,
estoque_lancto.custo_medio,
lancto.bico,
lancto.preco_unit,
lancto.vendedor,
lancto.turno,
lancto.quantidade,
lancto.valor,
produto.codigo AS codigoproduto,
produto.nome AS nomeproduto,
deposito.codigo AS codigodeposito,
deposito.nome AS nomedeposito,
grupo_produto.codigo AS codigogrupo,
grupo_produto.nome AS nomegrupo,
lancto.grid,
lancto.documento,
lancto.mlid,
lancto.operacao,
grupo_produto.comissao AS comissaogrupo,
produto.comissao AS comissaoproduto,
grupo_produto.perc_imposto,
lancto.hora AS horavenda,
lancto.seq,
lancto.usuario
FROM grupo_produto
JOIN (deposito
JOIN (empresa
JOIN (produto
JOIN (lancto
JOIN estoque_lancto ON lancto.produto = estoque_lancto.produto AND
lancto.empresa = estoque_lancto.empresa AND lancto.grid =
estoque_lancto.lancto) ON produto.grid = lancto.produto) ON
empresa.grid = lancto.empresa) ON deposito.grid = lancto.deposito) ON
grupo_produto.grid = produto.grupo;
Responder

Post mais votado

03/02/2016

Boa Tarde, para sua pergunta de cabeçalho é "SIM", você consegue executar uma função a partir da sua visualização e vice-versa.
Agora, se for o caso veja:

Na para chamada de dentro da função (que você não passou a função) a visualização

na visualização ou em relacionadas,


com relacionamento entre estas
SELECT vw.*, fc.* FROM view_x50 vw INNER check_estoquef() fc ON (fc... = vw...);

ou com uma sub-consulta para um registro ou array de registros
SELECT vw.*, (SELECT fc FROM check_estoquef() fc WHERE (fc... = vw. ..) ) AS fc_chec_estoquef FROM view_x50 vw;

Atc.
Responder

Mais Posts

03/02/2016

Agnaldoneves

Muito obrigado,
testei e funcionou..
Responder