Criar uma constante ou variavel de periodo no ibexpert
29/06/2018
0
BOA TARDE
A TODOS
Sou iniciante no ibexpert
Montei um select muito complexo para gestao de pedido
aonde tenho que ficar repetindo o periodo de vendas constantemente em
varios sub select
exemplo
select P.descricao,
(SELECT FIRST 1 cb.codigo_barra FROM cod_barras cb WHERE cb.produto=p.codigo) AS BARRA,
f.codigo,left(f.razao_social,15)as NOME,
CASE when T.porc_icms = 0
then
''''ST''''
ELSE
t.porc_icms
end
as ICMS,
CAST(REPLACE(P.valor_custo,'''','''',''''.'''') AS DECIMAL(8,2)) AS PC,
CAST(REPLACE(P.valor_venda,'''','''',''''.'''') AS DECIMAL(8,2)) AS PV,
-- ESTOQUE DAS FILIAS
CAST(el.loja2 AS DECIMAL(8,0)) as LIM,
CAST(el.loja3 AS DECIMAL(8,0)) AS PIR,
CAST(el.loja4 AS DECIMAL(8,0)) AS VIE,
-- QUANTIDADES VENDIDAS NAS FILIAIS
CAST((select sum(RV.quantidade_vendida) FROM resumo_venda_lojas RV WHERE RV.produto=me.produto
and RV.data between ''''2018-03-01'''' AND ''''2018-06-29''''
AND RV.loja = 2) AS DECIMAL(8,0)) AS VD_L,
CAST((select sum(RV.quantidade_vendida) FROM resumo_venda_lojas RV WHERE RV.produto=me.produto
and RV.data between ''''2018-03-01'''' AND ''''2018-06-29''''
AND RV.loja = 3) AS DECIMAL(8,0)) AS VD_P,
CAST((select sum(RV.quantidade_vendida) FROM resumo_venda_lojas RV WHERE RV.produto=me.produto
and RV.data between ''''2018-03-01'''' AND ''''2018-06-29''''
AND RV.loja = 4) AS DECIMAL(8,0)) AS VD_V,
-- QUANIDADE DE TROCAS APENAS NOTAS EMITIDAS
CAST(( select sum(nfp.quantidade) from nota_fiscal_produtos nfp,nota_fiscal nf where nfp.produto=me.produto
and nfp.nat_operacao in (''''5.202'''',''''5.411'''',''''5.949'''',''''6.202'''',''''6.411'''',''''6.949'''')
and nfp.id = nf.id
and nf.data_emissao between ''''2018-03-01'''' AND ''''2018-06-29'''') AS DECIMAL(8,0)) as TR_NF,
-- FORMULA MEDIA ENTRADA
-- TOTAL QUANTIDADE ENTRADA NO PERIODO / TOTAL DE VEZES QUE ENTROU
CAST(ROUND(((SELECT SUM(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''E'''' AND MV.produto=P.CODIGO
AND MV.data between ''''2018-03-01'''' AND ''''2018-06-29'''')
/
(SELECT count(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''E'''' AND MV.produto=P.CODIGO
AND MV.data between ''''2018-03-01'''' AND ''''2018-06-29'''')),0) AS DECIMAL(8,0)) as MD_ENT,
-- FORMULA CONSUMO MEDIO
-- TOTAL QUANTIDADE SAIDAS NO PERIODO / TOTAL DE VEZES QUE SAIU
(CAST(ROUND(((SELECT SUM(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''S'''' AND MV.produto=P.CODIGO
AND MV.data between''''2018-03-01'''' AND ''''2018-06-29'''')
/
(SELECT count(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''S'''' AND MV.produto=P.CODIGO
AND MV.data between ''''2018-03-01'''' AND ''''2018-06-29'''')),0) AS DECIMAL(8,0))) as MD_SAI,
etc...
tem varios formulas
from mov_estoque me
Existe uma solução para criar uma constante ou variavel para este periodo
no ibexpert
tipo MV.data between &INICIO AND &FIM
Desde já muito obrigado
A TODOS
Sou iniciante no ibexpert
Montei um select muito complexo para gestao de pedido
aonde tenho que ficar repetindo o periodo de vendas constantemente em
varios sub select
exemplo
select P.descricao,
(SELECT FIRST 1 cb.codigo_barra FROM cod_barras cb WHERE cb.produto=p.codigo) AS BARRA,
f.codigo,left(f.razao_social,15)as NOME,
CASE when T.porc_icms = 0
then
''''ST''''
ELSE
t.porc_icms
end
as ICMS,
CAST(REPLACE(P.valor_custo,'''','''',''''.'''') AS DECIMAL(8,2)) AS PC,
CAST(REPLACE(P.valor_venda,'''','''',''''.'''') AS DECIMAL(8,2)) AS PV,
-- ESTOQUE DAS FILIAS
CAST(el.loja2 AS DECIMAL(8,0)) as LIM,
CAST(el.loja3 AS DECIMAL(8,0)) AS PIR,
CAST(el.loja4 AS DECIMAL(8,0)) AS VIE,
-- QUANTIDADES VENDIDAS NAS FILIAIS
CAST((select sum(RV.quantidade_vendida) FROM resumo_venda_lojas RV WHERE RV.produto=me.produto
and RV.data between ''''2018-03-01'''' AND ''''2018-06-29''''
AND RV.loja = 2) AS DECIMAL(8,0)) AS VD_L,
CAST((select sum(RV.quantidade_vendida) FROM resumo_venda_lojas RV WHERE RV.produto=me.produto
and RV.data between ''''2018-03-01'''' AND ''''2018-06-29''''
AND RV.loja = 3) AS DECIMAL(8,0)) AS VD_P,
CAST((select sum(RV.quantidade_vendida) FROM resumo_venda_lojas RV WHERE RV.produto=me.produto
and RV.data between ''''2018-03-01'''' AND ''''2018-06-29''''
AND RV.loja = 4) AS DECIMAL(8,0)) AS VD_V,
-- QUANIDADE DE TROCAS APENAS NOTAS EMITIDAS
CAST(( select sum(nfp.quantidade) from nota_fiscal_produtos nfp,nota_fiscal nf where nfp.produto=me.produto
and nfp.nat_operacao in (''''5.202'''',''''5.411'''',''''5.949'''',''''6.202'''',''''6.411'''',''''6.949'''')
and nfp.id = nf.id
and nf.data_emissao between ''''2018-03-01'''' AND ''''2018-06-29'''') AS DECIMAL(8,0)) as TR_NF,
-- FORMULA MEDIA ENTRADA
-- TOTAL QUANTIDADE ENTRADA NO PERIODO / TOTAL DE VEZES QUE ENTROU
CAST(ROUND(((SELECT SUM(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''E'''' AND MV.produto=P.CODIGO
AND MV.data between ''''2018-03-01'''' AND ''''2018-06-29'''')
/
(SELECT count(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''E'''' AND MV.produto=P.CODIGO
AND MV.data between ''''2018-03-01'''' AND ''''2018-06-29'''')),0) AS DECIMAL(8,0)) as MD_ENT,
-- FORMULA CONSUMO MEDIO
-- TOTAL QUANTIDADE SAIDAS NO PERIODO / TOTAL DE VEZES QUE SAIU
(CAST(ROUND(((SELECT SUM(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''S'''' AND MV.produto=P.CODIGO
AND MV.data between''''2018-03-01'''' AND ''''2018-06-29'''')
/
(SELECT count(MV.QUANTIDADE) FROM mov_estoque MV WHERE MV.e_s = ''''S'''' AND MV.produto=P.CODIGO
AND MV.data between ''''2018-03-01'''' AND ''''2018-06-29'''')),0) AS DECIMAL(8,0))) as MD_SAI,
etc...
tem varios formulas
from mov_estoque me
Existe uma solução para criar uma constante ou variavel para este periodo
no ibexpert
tipo MV.data between &INICIO AND &FIM
Desde já muito obrigado
Paulo Agnezze
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)