Beancount.Directives.Query (beancount_ex v0.6.0)

Copy Markdown View Source

The query directive stores a named BQL query in the ledger.

See Query.

Beancount syntax

2026-01-01 query "monthly" "SELECT account, sum(position) GROUP BY account"

General form: YYYY-MM-DD query "Name" "BQL"

Elixir struct

%Beancount.Directives.Query{
  date: ~D[2026-01-01],
  name: "monthly",
  bql: "SELECT account, sum(position) GROUP BY account",
  metadata: %{}
}

Or use Beancount.query_directive/4:

Beancount.query_directive(~D[2026-01-01], "monthly",
  "SELECT account, sum(position) GROUP BY account"
)

Fields

  • date - Date.t() the query definition is recorded.
  • name - unique identifier for the saved query.
  • bql - Beancount Query Language string.
  • metadata - optional map rendered below the directive.

Summary

Types

t()

@type t() :: %Beancount.Directives.Query{
  bql: String.t(),
  date: Date.t(),
  metadata: map(),
  name: String.t()
}