表の結合とサブクエリーを組み合わせて検索
表の結合とサブクエリーを組み合わせることで、より高度な検索をおこなえます。
<例題>
商品表と売上明細から、商品表の単価の平均以上の行の売上No、単価、数量と売上金額を表示する。売上金額は単価*数量で計算する
商品CD | 商品名 | 単価 |
---|---|---|
10 | 鉛筆 | 30 |
20 | 消しゴム | 50 |
30 | シャープペン | 250 |
40 | ボールペン | 150 |
50 | 色鉛筆 | 700 |
60 | ノート | 100 |
売上No | 日付 | 顧客CD |
---|---|---|
1 | 2001/05/27 | 105 |
2 | 2001/05/27 | 101 |
3 | 2001/05/27 | 103 |
4 | 2001/06/27 | 102 |
5 | 2001/06/27 | 104 |
売上No | 連番 | 商品CD | 数量 |
---|---|---|---|
1 | 1 | 10 | 10 |
1 | 2 | 30 | 7 |
1 | 3 | 60 | 25 |
2 | 1 | 20 | 15 |
2 | 2 | 40 | 3 |
3 | 1 | 30 | 8 |
3 | 2 | 40 | 30 |
3 | 3 | 50 | 12 |
3 | 4 | 60 | 50 |
4 | 1 | 20 | 21 |
4 | 2 | 40 | 21 |
5 | 1 | 10 | 17 |
5 | 2 | 20 | 5 |
顧客CD | 顧客名 |
---|---|
101 | 二島商店 |
102 | 姫路商事 |
103 | 大阪物産 |
104 | 神戸商店 |
105 | 福岡商事 |
SELECT 売上No,単価,数量,単価*数量
FROM 商品表,売上明細
WHERE 商品表.商品CD=売上明細.商品CD ← 商品表の商品CDと売上明細の商品CDが一致する行を結合
AND 単価>=(SELECT AVG(単価) ← 単価の平均を計算
FROM 商品表)
売上No | 単価 | 数量 | |
---|---|---|---|
1 | 250 | 7 | 1750 |
3 | 250 | 8 | 2000 |
3 | 700 | 12 | 8400 |
例題SELECT文の実行順序は次のとおりです。
売上No | 単価 | 数量 | |
---|---|---|---|
1 | 30 | 10 | 300 |
1 | 250 | 7 | 1750 |
1 | 100 | 25 | 2500 |
2 | 50 | 15 | 750 |
2 | 150 | 3 | 450 |
3 | 250 | 8 | 2000 |
3 | 150 | 30 | 4500 |
3 | 700 | 12 | 8400 |
3 | 100 | 50 | 5000 |
4 | 50 | 9 | 450 |
4 | 150 | 21 | 3150 |
5 | 30 | 17 | 510 |
5 | 50 | 5 | 250 |
初詣の意味と諸説、お参りのしかた、喪中の初詣について初詣の知識を解説します。