Precisava mostrar os últimos X dias os totais vencimentos dia a dia até hoje.
ex; hoje dia 14/02/2024 - 10 dias
04/02/2024 total do inicio ate o dia 4
05/02/2024 total do inicio ate o dia 5
assim por diante
fb_data() é uma função minha para transformar a data para execução
xtexto:="
esse primeiro exemplo me dá o resultado corretamente,
xdata:=datadehoje - 10
Código: Selecionar todos
for a:= xdata to dataDeHoje
str:="select sum(d.saldo) from "+receberd +" d" ;
+" LEFT JOIN "+NOTAD +" n ON (d.docum||d.codcli||d.tpnota||d.serie = n.docum||n.destino||n.tpnota||n.serie ) ";
+" where d.dtvenc <= '"+ fb_data(a) + "' and d.saldo <> '0' and n.status <> '04' ;"
fb_executa() // funcao que executa e me retorna matriz m_select
xtexto+= "total até o dia: " +dtoc(a)+ " "+transfo(m_select[1,1] , "@e 99,999,999.99")+fl
next
esse exemplo anterior com muitos registros deve demorar muito, pois estou indo dia a dia no arquivo,
acho que no exemplo abaixo seria mais rápido, mas está voltando o resultado de hoje em todos os dias.
Ou alguma outra solução que não seja esta.
O correto seria me retornar agrupado tudo de uma só vez.
Código: Selecionar todos
str:="select extract(day from d.dtvenc) as dia , sum(d.saldo) ,d.dtvenc from "+receberd +" d" ;
+" LEFT JOIN "+NOTAD +" n ON (d.docum||d.codcli||d.tpnota||d.serie = n.docum||n.destino||n.tpnota||n.serie ) ";
+" where d.dtvenc <= '"+ fb_data(dataDeHojeg-10 ) + "' and d.dtvenc <= '"+ fb_data(datadehoje) +"' and d.saldo <> '0' and n.status <> '04' ";
+" group by dia , dtvenc ;" Obrigado
Poka


