2つのテーブルの和集合の集計を作成するクエリを作成していますが、和集合の2番目のテーブルにいくつかの列(合計)を含める必要があり、これを行う方法が正確にわかりません。これはストアドプロシージャの一部ではないため、変数はありません。詳細は以下のとおりです。
select t.col1, t.col2, t.col3 FROM (
select d.col1, d.col2, d.col3 FROM table1 d
join another_table
on ...
join different table
on ...
UNION ALL
select a.col1, a.col2, a.col3 FROM table2 a
join another_table
on ...
join different table
on ...
WHERE
/*datetime restricitons */
) t
したがって、これが問題です。テーブルaとdのcol3は同じデータですが、テーブルbでは合計値であり、追加される新しい行はそれぞれ前の行に基づいて計算されます。(私はこれらのテーブルを制御できません)。
結合後、テーブルaの30ほどの余分な行が、テーブルdの行の最後に追加されます。唯一の問題は、テーブルaが累積値ではなく、行ごとの値であるということです。
理想的には、結合中に、テーブルdのcol3値の最後の行を取得し、テーブルaから追加された最初の行は、テーブルdのcol3の値+/-テーブルaのcol3の値になります。
私はこれを適切に説明したことを願っています、私はこれを行う方法があることを知っています、私はそれをどのように適用するかがわかりません。
次に、2つの物理テーブルの例と、出力集計がどのように表示されるか、およびどのように表示されるかを示します。
表d:
表a:
出力テーブル:REDISH行はテーブルdからのものであり、BLUEはテーブルaからのものです。