Windowsあれこれ、サービス・SWあれこれ、会計・経理あれこれ、いまさら生活雑学、いまさら都市伝説などなど。
カレンダー
04 | 2025/05 | 06 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
カテゴリー
最新記事
(11/15)
(10/28)
(10/26)
(10/16)
(10/05)
最新トラックバック
プロフィール
HN:
erokazu
性別:
非公開
ブログ内検索
最古記事
(08/19)
(08/21)
(08/23)
(08/25)
(08/26)
複数テーブル(またはクエリ)の計算結果を、アプリ内部の計算テーブルに一次的に保存…。
そんなとき重宝するのがUNIONクエリ。
同一の構造をもつ複数のテーブルまたはクエリをひとつの結果セットにできる超便利クエリです。
↓↓↓それでは解説おば。
そんなとき重宝するのがUNIONクエリ。
同一の構造をもつ複数のテーブルまたはクエリをひとつの結果セットにできる超便利クエリです。
↓↓↓それでは解説おば。
【基本構文】
SELECT フィールド名 FROM テーブル1
UNION
SELECT フィールド名 FROM テーブル2
【例題】
同一のテーブル構造をもつ出荷実績TBLと入荷実績TBLの値を合算して在庫移動数を計算する
<UNIONクエリを使わない場合>
(処理方法)
一次的に出荷実績TBLと入荷実績TBLをアプリ内部にもつ計算TBLに保存し、計算TBLを集計して在庫移動数を計算する
(発行するSQL)
・INSERT INTO 計算TBL FROM SELECT 数量 FROM 出荷実績TBL;
・INSERT INTO 計算TBL FROM SELECT 数量 FROM 入荷実績TBL;
・SELECT Sum(数量) AS在庫移動数合算値 FROM 計算TBL GROUP BY 製品ID;
<UNIONクエリを使った場合>
(処理方法)
UNIONクエリを利用して出荷実績TBLと入荷実績TBLを結合した計算TBL(クエリ)を生成する
(発行するSQL)
SELECT Sum(計算TBL.数量) AS 在庫移動数
FROM [SELECT * FROM出荷実績TBL UNION SELECT * FROM入荷実績TBL]. AS 計算TBL
GROUP BY 計算TBL.製品ID;
このように、上記のような簡単なケースの場合でも、SQLを3つ発行するところが1文で処理可能となります。
SELECT フィールド名 FROM テーブル1
UNION
SELECT フィールド名 FROM テーブル2
【例題】
同一のテーブル構造をもつ出荷実績TBLと入荷実績TBLの値を合算して在庫移動数を計算する
<UNIONクエリを使わない場合>
(処理方法)
一次的に出荷実績TBLと入荷実績TBLをアプリ内部にもつ計算TBLに保存し、計算TBLを集計して在庫移動数を計算する
(発行するSQL)
・INSERT INTO 計算TBL FROM SELECT 数量 FROM 出荷実績TBL;
・INSERT INTO 計算TBL FROM SELECT 数量 FROM 入荷実績TBL;
・SELECT Sum(数量) AS在庫移動数合算値 FROM 計算TBL GROUP BY 製品ID;
<UNIONクエリを使った場合>
(処理方法)
UNIONクエリを利用して出荷実績TBLと入荷実績TBLを結合した計算TBL(クエリ)を生成する
(発行するSQL)
SELECT Sum(計算TBL.数量) AS 在庫移動数
FROM [SELECT * FROM出荷実績TBL UNION SELECT * FROM入荷実績TBL]. AS 計算TBL
GROUP BY 計算TBL.製品ID;
このように、上記のような簡単なケースの場合でも、SQLを3つ発行するところが1文で処理可能となります。
PR
この記事にコメントする