Sadly, no, that didn't do it. I'm surprised that this is so difficult to
do. I would have expected more people to want to know a balance on given
date.

$ cat >test.bean <<EOF
plugin "beancount.plugins.auto_accounts"
2020-01-01 * "Open"
  Assets:Bank:AAA 100 AAA
  Assets:Bank:BBB 100 BBB
  Income:Work
2021-01-01 price AAA 1 USD
2021-01-01 price BBB 10 USD
2020-01-15 * "Contribute"
  Assets:Bank:AAA 10 AAA
  Assets:Bank:BBB 10 BBB
  Income:Work
2021-02-01 price AAA 2 USD
2021-02-01 price BBB 20 USD
2021-03-01 price AAA 3 USD
2021-03-01 price BBB 30 USD
EOF
$ bean-query test.bean 'SELECT convert(units(sum(position)), "USD",
#"2021-01-01") AS value FROM CLOSE ON 2021-01-01 WHERE account ~
"^Assets:Bank"'
 value
--------
1210 USD

The result should be 1100. The third argument to convert() uses the right
price, but I can't get the right balance. Using date <= 2021-01-01 has the
same result.

On Sat, May 29, 2021 at 7:48 PM Mark Lodato <[email protected]> wrote:

> On Sat, May 29, 2021 at 4:33 PM Ben Blount <[email protected]> wrote:
>
>> Have you tried FROM CLOSE ON <date>
>>
>> See https://beancount.github.io/docs/beancount_query_language.html for
>> more on how this works.
>>
>
> Yes I have, and it does not work.
>
> $ bean-query test.bean 'SELECT convert(units(sum(position)), "USD") AS
> value FROM CLOSE ON 2021-01-02 WHERE account ~ "Assets:Bank"'
>  value
> --------
> 3300 USD
>
> The documentation leaves a lot to be desired, unfortunately. For example,
> the "convert()" function is entirely undocumented.
>
> On Sat, May 29, 2021 at 4:44 PM 'Patrick Ruckstuhl' via Beancount <
> [email protected]> wrote:
>
>> This is part of my query
>>
>>
>> select
>> number(only("CHF", convert(sum(value(position, #"2020-12-31")), "CHF",
>> #"2020-12-31"))) as value,
>> number(only("CHF", convert(sum(cost(position)), "CHF", #"2020-12-31")))
>> as cost,
>> account
>> where
>> account ~ "(Assets|Liabilities):"
>> and year <= 2020
>>
>> That gives both cost as well as value on a specific date
>>
>
> Perfect. Thanks! That's what I was missing. The convert function takes a
> third argument that is a date.
>
> $ bean-query test.bean 'SELECT convert(units(sum(position)), "USD",
> #"2021-01-02") AS value WHERE account ~ "Assets:Bank"'
>  value
> --------
> 2200 USD
>
>
>>
>> On May 29, 2021 10:33:34 PM GMT+02:00, Ben Blount <[email protected]> wrote:
>>>
>>> Have you tried FROM CLOSE ON <date>
>>>
>>> See https://beancount.github.io/docs/beancount_query_language.html for
>>> more on how this works.
>>>
>>> On Sat, May 29, 2021, 13:12 Mark Lodato <[email protected]> wrote:
>>>
>>>> Oops, I sent out that email in haste. I didn't mean it for it to sound
>>>> so demanding.
>>>>
>>>> If anyone wouldn't mind helping construct such a query, I'd appreciate
>>>> it!
>>>>
>>>> On Sat, May 29, 2021, 4:02 PM Mark Lodato <[email protected]> wrote:
>>>>
>>>>> I can't figure out how to write a query that prints the aggregate
>>>>> balance of an account subtree as of a given date, converted to USD using
>>>>> the price as of that date. Example data:
>>>>>
>>>>> $ cat >test.bean <<EOF
>>>>> plugin "beancount.plugins.auto_accounts"
>>>>> 2020-01-01 * "Open"
>>>>>   Assets:Bank:AAA 100 AAA
>>>>>   Assets:Bank:BBB 100 BBB
>>>>>   Income:Work
>>>>> 2021-01-01 price AAA 1 USD
>>>>> 2021-01-01 price BBB 10 USD
>>>>> 2021-01-02 price AAA 2 USD
>>>>> 2021-01-02 price BBB 20 USD
>>>>> 2021-01-03 price AAA 3 USD
>>>>> 2021-01-03 price BBB 30 USD
>>>>> EOF
>>>>> $ bean-query test.bean 'SELECT convert(units(sum(position)), "USD") AS
>>>>> value WHERE account ~ "Assets:Bank"'
>>>>>  value
>>>>> --------
>>>>> 3300 USD
>>>>>
>>>>> I'd like to be able to specify a date and get the balance at the end
>>>>> of that date, e.g. 2021-01-02 => 2200 USD. I tried using "FROM DATE =
>>>>> 2021-01-02" or "FROM DATE <= 2021-01-02" but it doesn't affect the result.
>>>>>
>>>>> Thank you in advance,
>>>>> Mark
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "Beancount" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/beancount/yCPa_tlF2-4/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/beancount/a1cfbd22-e495-40e8-b6ea-055fd9227d47n%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/beancount/a1cfbd22-e495-40e8-b6ea-055fd9227d47n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Beancount" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/beancount/CAHREChjkG%3Dy7pBKOuYMC4m6OzHfsx-4uTDdWx3DXLksFExdW2g%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/beancount/CAHREChjkG%3Dy7pBKOuYMC4m6OzHfsx-4uTDdWx3DXLksFExdW2g%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Beancount" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/beancount/yCPa_tlF2-4/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/beancount/943AD439-FF54-4206-AE77-11BA51B086A9%40ch.tario.org
>> <https://groups.google.com/d/msgid/beancount/943AD439-FF54-4206-AE77-11BA51B086A9%40ch.tario.org?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/CAHREChimi6zpYb3Tmv5UyZo7%2BqcNPTrmCif7UAr%2BHgTbtzF2UQ%40mail.gmail.com.

Reply via email to