0
mariadb/mysqlでは、次の方法で変数を使用してselect文で計算を実行できます。この単純な例では、日付の範囲と変数を使用して、単純な開始残高と終了残高を計算し、毎日10の支払いを行います。SELECT文でのMARIADB変数POSTGRES等価
with RECURSIVE dates as (
select '2017-11-01' as `dt`
union all
select adddate(dt, INTERVAL 1 DAY)
from dates
where dt < CURDATE()
)
select
@vardate:=d.dt
, @openbal
, @payment:= 10
, @closebal:= @[email protected]
, @openbal:[email protected]
from dates d;
私はselect文でその場で簡単な計算を実行することができますこの技術を使用して
╔══════════════╦════════════╦═══════════════╦═════════════╗
║ "ac_date" ║ "open_bal" ║ "trans_total" ║ "close_bal" ║
╠══════════════╬════════════╬═══════════════╬═════════════╣
║ "2017-11-01" ║ "0" ║ "10" ║ "10" ║
║ "2017-11-02" ║ "10" ║ "10" ║ "20" ║
║ "2017-11-03" ║ "20" ║ "10" ║ "30" ║
...
....結果が得られます。私の質問は、PL/pgSQL関数でこのように変数を使用することは可能ですか、それとも私が見落としている別の方法がありますか?
あなたはPostgresの変数を必要としません。あなたは単にウィンドウ関数を使うことができます(そして、いつMySQLで '再帰的に'を使うことができますか?) –
ウィンドウ関数を使って質問の結果を得る方法を教えてください。私は概念的に役立つかもしれないと思う。私が働いているクエリは、毎日の関心を計算するローンスケジュールを作成し、広範囲に記述された手法を使用します。 – ojf
出力の作成方法を説明する必要があります。お支払いは「1」に設定されていますが、出力には「10」の増加が表示されます。 Alosどこから 'trans_total'が来たのですか?私は変数から導き出すことはできません –