PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Duvida com procedure -AB #547584

03/03/2016

0

tenho uma procedure no firebird e gostaria de fazer o seguinte:
Depois de informar um periodo entre datas, ele me retornasse:

01/02/2016 a 31/03/2016

retornasse 01/2016,
02/2016,
03/2016

e que apartir daí, pudesse com esse resultado fazer meus selects.
vejam minha procedure
CREATE PROCEDURE MOVRESSUMO(
DATAI DATE,
DATAF DATE,
PFILIAL INTEGER)
RETURNS(
MES_ANO VARCHAR(7) CHARACTER SET NONE,
TOTAL_ENTRADA DOUBLE PRECISION,
TOTAL_CONSUMO DOUBLE PRECISION,
TOTAL_ATEND_FARMACIA INTEGER,
TOTAL_DEVOLUCAO DOUBLE PRECISION,
TOTAL_PERDAS DOUBLE PRECISION)
AS
begin

for

SELECT EXTRACT(MONTH FROM B.dtentrada) ||'/'|| EXTRACT(year FROM b.dtentrada),
coalesce(sum(b.qtdund*b.custund),0)

FROM estoque_lote B
where b.filial=:pfilial and b.dtentrada between :datai and :dataf

group by EXTRACT(MONTH FROM B.dtentrada), EXTRACT(year FROM b.dtentrada)

into :Mes_Ano, :Total_Entrada
DO
BEGIN

for
select coalesce(sum(a.qtd * a.custo),0) from consumopaciente a

where a.filial=:pfilial and
EXTRACT(MONTH FROM a.data) ||'/'|| EXTRACT(year FROM a.data)=:MES_ANO

group by EXTRACT(MONTH FROM a.data), EXTRACT(year FROM a.data)
into :Total_Consumo
do
begin

for select coalesce(count(c.paciente),0)
from regatfarmpac c
WHERE c.filial=:pfilial and c.paciente is not null and
eXTRACT(MONTH FROM c.data) ||'/'|| EXTRACT(year FROM c.data)=:MES_ANO

into :total_atend_Farmacia

do
begin
for select coalesce(sum(d.qtd * d.custo),0)
from perdas d
WHERE d.filial=:pfilial and d.tipomov='P' and
eXTRACT(MONTH FROM d.data) ||'/'|| EXTRACT(year FROM d.data)=:MES_ANO

into :Total_Perdas


do
begin
for select coalesce(sum(e.qtd * e.custo),0)
from perdas e
WHERE e.filial=:pfilial and e.tipomov='D' and
eXTRACT(MONTH FROM e.data) ||'/'|| EXTRACT(year FROM e.data)=:MES_ANO

into :total_devolucao

do

suspend;
end
end
end
end
end

ela funciona, porém se a primeira tabela não possuir movimentação no periodo especificado, todas as outras tbm não irão mostrar nada, por estarem dependendo da estrutura da primeira.
Eliseu Souza

Eliseu Souza

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar