平成24年春期午後問3

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
みかんさん  
(No.1)
https://www.fe-siken.com/kakomon/24_haru/pm03.html

設問2で結合のことで質問があります。

WHERE句で、1行ずつ順番に処理を行っていると思います。例えば「エ」でどの文がどのような処理をしてどのような表ができるのかを知りたいです。

面倒かと思いますがよろしくお願いします。
2021.10.28 20:32
関数従属さん 
FE ゴールドマイスター
(No.2)
FROM句で料理表、精算表、明細表が出てきますが、WHERE句がない状態では直積となります。

精算表
精算コード 社員番号 日付     精算額
03100186   050221   20120310 380
99999999   050221   20120310 999

明細表
精算コード 料理コード 皿数
03100186   0001       1
03100186   0002       1

料理表
料理コード 料理名    単価
0001       ごはん    100
0002       肉じゃが  280

の場合だと

精算表                              明細表                     料理表
精算コード 社員番号 日付     精算額 精算コード 料理コード 皿数 料理コード 料理名    単価
03100186   050221   20120310 380    03100186   0001       1    0001       ごはん    100
03100186   050221   20120310 380    03100186   0001       1    0002       肉じゃが  280
03100186   050221   20120310 380    03100186   0002       1    0001       ごはん    100
03100186   050221   20120310 380    03100186   0002       1    0002       肉じゃが  280
99999999   050221   20120310 999    03100186   0001       1    0001       ごはん    100
99999999   050221   20120310 999    03100186   0001       1    0002       肉じゃが  280
99999999   050221   20120310 999    03100186   0002       1    0001       ごはん    100
99999999   050221   20120310 999    03100186   0002       1    0002       肉じゃが  280

となります。

精算表.精算コード = 明細表.精算コードで

精算表                              明細表                     料理表
精算コード 社員番号 日付     精算額 精算コード 料理コード 皿数 料理コード 料理名    単価
03100186   050221   20120310 380    03100186   0001       1    0001       ごはん    100
03100186   050221   20120310 380    03100186   0001       1    0002       肉じゃが  280
03100186   050221   20120310 380    03100186   0002       1    0001       ごはん    100
03100186   050221   20120310 380    03100186   0002       1    0002       肉じゃが  280

となり

明細表.料理コード = 料理表.料理コードで

精算表                              明細表                     料理表
精算コード 社員番号 日付     精算額 精算コード 料理コード 皿数 料理コード 料理名    単価
03100186   050221   20120310 380    03100186   0001       1    0001       ごはん    100
03100186   050221   20120310 380    03100186   0002       1    0002       肉じゃが  280

となり
2021.10.28 23:08
関数従属さん 
FE ゴールドマイスター
(No.3)
料理表.料理名 = '肉じゃが'で

精算表                              明細表                     料理表
精算コード 社員番号 日付     精算額 精算コード 料理コード 皿数 料理コード 料理名    単価
03100186   050221   20120310 380    03100186   0002       1    0002       肉じゃが  280

となります。

その後、精算表.社員番号でGROUP化され、
SELECT項目の精算表.社員番号とSUM(明細表.皿数) AS 購入皿数により

精算表.社員番号 購入皿数
050221          1

となります。
2021.10.28 23:08
みかんさん  
(No.4)
一つ一つ丁寧にありがとうございました。
この文の動きは理解することができました!他の文もどうなっていくか考えていきます。

本当にありがとうございました。
2021.10.29 12:45

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop