2005年03月02日

[ テクニカルエンジニア(データベース)/H16 ]

H16午後I 問2 SQL俯瞰

H16午後I 問2
設問1(1):LEFT JOIN

SELECT プロモーション.プロモーションID, プロモーション名, 割引率,
     商品.商品コード, 商品名, 売上個数, 売上金額, 前月売上個数,
     前月売上金額
FROM プロモーション, 商品, プロモーション対象商品 LEFT JOIN
 ( SELECT 商品コード, SUM( 売上個数 ) AS 売上個数, SUM( 売上金額 ) AS 売上金額
  FROM 注文履歴
  WHERE 年月日 BETWEEN '2004-03-01' AND '2004-03-31'
  GROUP BY 商品コード ) AS 当月
 ON 当月.商品コード = プロモーション対象商品.商品コード
 LEFT JOIN
 ( SELECT 商品コード, SUM( 売上個数 ) AS 前月売上個数, SUM( 売上金額 ) AS 前月売上金額
  FROM 注文履歴
  WHERE 年月日 BETWEEN '2004-02-01' AND '2004-02-29'
  GROUP BY 商品コード ) AS 前月
 ON 前月.商品コード = プロモーション対象商品.商品コード
WHERE 実施年月 = '2004-03'
AND プロモーション.プロモーションID = プロモーション対象商品.プロモーションID
AND プロモーション対象商品.商品コード = 商品.商品コード
ORDER BY プロモーション.プロモーションID, 商品.商品コード



設問2(2):副問合せ

SELECT A.職業, COUNT(*) AS 顧客数 FROM 顧客 A, (
  SELECT DISTINCT 顧客コード FROM 注文履歴
  WHERE 売上金額 >= 50000
  AND 年月日 BETWEEN '2004-03-01' AND '2004-03-31'
) B
WHERE A.顧客コード = B.顧客コード
GROUP BY A.職業

Posted by g@kko at 2005/03/02 20:18 | 個別記事表示 | コメントを見る (0) |
この記事をLicWikiに埋め込む:
コメント