Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Estou precisando criar em uma tabela de fluxo de caixa um saldo retroativo. Preciso expor isso em uma tabela:
Tb_Saldo | ||||||
Data Vencimento Fluxo | 11/09/2012 | 12/09/2012 | 13/09/2012 | |||
Categoria | Saldo | Acumulado | Saldo | Acumulado | Saldo | Acumulado |
a | 10,00 | 10,00 | 0,00 | 120,00 | 0,00 | 100,00 |
b | 100,00 | 110,00 | 30,00 | 150,00 | 50,00 | 150,00 |
c | 150,00 | 260,00 | 40,00 | 190,00 | 30,00 | 180,00 |
d | 50,00 | 310,00 | 10,00 | 200,00 | 20,00 | 200,00 |
e | 120,00 | 430,00 | 50,00 | 250,00 | 30,00 | 230,00 |
f | 20,00 | 450,00 | -50,00 | 200,00 | 20,00 | 250,00 |
g | -10,00 | 440,00 | 20,00 | 220,00 | 50,00 | 300,00 |
O que estou precisando é que o Saldo Inicial de "a" seja o valor acumulado de "g" do dia anterior.
Ao recarregar a app é carregado o Saldo do primeiro dia que ai no caso é o dia 11/09/2012, mas não funciona para os demais dias
-Estou fazendo o seguinte tratamento para a coluna Saldo:
if(OPERACAO = 'SALDO' and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') = today('DD/MM/YYYY'), SUM(VALOR_SALDO),
if(OPERACAO = 'SALDO' and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') > today('DD/MM/YYYY') ,Bottom([acumulado]),//if(OPERACAO = 'SALDO' ,Bottom(Before(VALOR_SALDO)),//ABOVE(SUM(VALOR_SALDO)),
if(OPERACAO = 'RECEBIMENTO', SUM(VALOR_SALDO),
IF(OPERACAO = 'PAGAMENTO', SUM(VALOR_SALDO),//*-1,
)
)
)
-Estou fazendo o seguinte tratamento para a coluna Acumulado:
=RangeSum(Above(Total Sum(VALOR_SALDO),0,RowNo()))
Bom Dia Tiago
Então você está usando Today, como hoje é dia 11 vai funcionar, como dia 12 não é hoje não vai funcionar, uma pergunta: O que você quer fazer não é pegar dia anterior e fazer acumulado?
tenta algo como (DATA_VENCIMENTO_FLUXO)-1 que deve funcionar
imagino que esse DATA_VENCIMENTO_FLUXO seja na verdade a data que fechou o caixa correto, então vc tem o dia anterior em cada linha e começa com ele.
Tenho os dados do dia atual, e os lançamentos previstos para datas futuras, para mostrar como meu fluxo de caixa vai estar dia X se continuar como previsto.
Preciso do saldo inicial do dia de amanhã tendo feito todas as movimentações previstas para hoje.
Entendi
então no caso troca para por DayStart (today,+1)
segue exemplo:
daystart ( '2006-01-25 16:45' ) retorna '2006-01-25 00:00:00' com um valor numérico subjacente correspondente a '2006-01-25 00:00:00.000'
daystart ( '2006-01-25 16:45', -1 ) retorna '2006-01-24 00:00:00' com um valor numérico subjacente correspondente a '2006-01-24 00:00:00.000'
daystart ('2006-01-25 16:45', 0, 0.5 ) retorna '2006-01-25 12:00:00' com um valor numérico subjacente correspondente a '2006-01-25 12:00:00.000'
O bom de usa-lo que ai você pode colocar o horario que dia realmente começa para você se quiser.
Acho que isso resolve seu problema, qq me avise,
Sds
No caso ai eu precisaria ter o saldo do dia em questão, e do banco só tenho da data atual, eu preciso é pegar a soma da coluna Saldo do dia anterior e e colocar como o valor inicial do dia seguinte.
Tb_Saldo | ||||||
Data Vencimento Fluxo | 11/09/2012 | 12/09/2012 | 13/09/2012 | |||
Categoria | Saldo | Acumulado | Saldo | Acumulado | Saldo | Acumulado |
a | 0,00 | 10,00 | 450,00 | 120,00 | 650,00 | 100,00 |
b | 100,00 | 110,00 | 30,00 | 150,00 | 50,00 | 150,00 |
c | 150,00 | 260,00 | 40,00 | 190,00 | 30,00 | 180,00 |
d | 50,00 | 310,00 | 10,00 | 200,00 | 20,00 | 200,00 |
e | 120,00 | 430,00 | 50,00 | 250,00 | 30,00 | 230,00 |
f | 20,00 | 450,00 | 50,00 | 300,00 | 20,00 | 250,00 |
g | 10,00 | 460,00 | 20,00 | 320,00 | 50,00 | 300,00 |
450,00 | 650,00 | 850,00 |
Bem você tem o atual, você teoricamente tem o Anterior....
naquele codigo que você fez mesmo
/// Aqui você pegou dia anterior no maximo vai ser "0"
if(OPERACAO = 'SALDO' and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') =< DayStart (today('DD/MM/YYYY'),-1), SUM(VALOR_SALDO),
//////////////////////////////////////////////////
if(OPERACAO = 'SALDO' and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') >DayStart (today('DD/MM/YYYY'),+1)
,Bottom([acumulado]),//if(OPERACAO = 'SALDO' ,Bottom(Before(VALOR_SALDO)),//ABOVE(SUM(VALOR_SALDO)),
if(OPERACAO = 'RECEBIMENTO', SUM(VALOR_SALDO),
IF(OPERACAO = 'PAGAMENTO', SUM(VALOR_SALDO),//*-1,
)
)
)
Outra coisa que pode te ajudar é SetAnalys
tópico como base:
Acho que não estou conseguindo me explicar. Bora lá, tenho a seguinte tabela:
Tb_Saldo | |||
Data Vencimento Fluxo | 11/09/2012 | 12/09/2012 | 13/09/2012 |
Categoria | Saldo | Saldo | Saldo |
a | 50000,00 | Saldo Final 11/09/12 | Saldo Final 12/09/12 |
b | 100,00 | 30,00 | 50,00 |
c | 150,00 | 40,00 | 30,00 |
d | 50,00 | 10,00 | 20,00 |
e | 120,00 | 50,00 | 30,00 |
f | 20,00 | 50,00 | 20,00 |
g | 10,00 | 20,00 | 50,00 |
Saldo Final 11/09/12 | Saldo Final 12/09/12 | Saldo Final 13/09/12 |
O banco me traz o saldo inicial(valor de "a") do dia atual, o que eu preciso é que o valor total do dia atual seja setado como valor de "a" do dia seguinte,e assim sucessivamente. Não estou conseguindo pegar esse valor total de cada dia para colocar como valor inicial do dia seguinte.
Tenta algo parecido com isso: if (date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') = today('DD/MM/YYYY'), Sum(saldo), saldo)
Nesse if ai seria para ver se Data de vencimento é igual a Hoje, você soma o Saldo com que ja teria, se não ele é saldo ( o que provalmente é do dia anterior)
Dessa forma ai eu estaria somando as movimentações do dia. Mas ainda não sei como estarei pegando o valor do total do saldo do dia anterior e colocar no inicio das movimentações do proximo dia, tipo:
Tb_Saldo | |||
Data Vencimento Fluxo | 11/09/2012 | 12/09/2012 | 13/09/2012 |
Categoria | Saldo | Saldo | Saldo |
a | 50000,00 | Saldo Final 11/09/12 | Saldo Final 12/09/12 |
b | 100,00 | 30,00 | 50,00 |
c | 150,00 | 40,00 | 30,00 |
d | 50,00 | 10,00 | 20,00 |
e | 120,00 | 50,00 | 30,00 |
f | 20,00 | 50,00 | 20,00 |
g | 10,00 | 20,00 | 50,00 |
Saldo Final 11/09/12 | Saldo Final 12/09/12 | Saldo Final 12/09/12 |
O valor 50000,00 é o saldo inical que o banco me traz que será somado com os demais valores do dia(100,00; 150,00; 50,00; 120,00; 20,00; 10,00), que me resultará no Saldo Final do dia 11/09/12, que será 50450,00.
Preciso que esse valor seja setado automaticamente como Saldo de "a" no dia 12/09/12. Não sei como fazer isso. E antes de mais nada obrigado pela força.
Uma pergunta: Esse valor vem "nullo" do banco por acaso, no dia 12/09/2012?
Se vier quando for carregar o Script tentar usar a função Peek(), ela atumaticamente preenche com valor do campo anterior
seria mais ou menos assim:
if(Peek(Acumulado) and IsNull(Acumulado), Peek(Acumulado),Acumulado) AS SALDO