Accessに詳しい方! 最近Accessを始めた者です。課題で行き詰まっています。参考書を読んでも,中々イメージが掴めません。 SQLの回答を御願い致します。

Accessに詳しい方! 最近Accessを始めた者です。課題で行き詰まっています。参考書を読んでも,中々イメージが掴めません。 SQLの回答を御願い致します。 課題は2つです。 問題1. 商品テーブルに受注明細テーブルを,商品テーブルの『ID』と受注明細テーブルの『商品ID』で『左外部結合』し,商品テーブルの『商品名』,受注明細テーブルの『単価』×『数量』の結果を『金額の別名で表示し,『単価』×『数量』が1000000以上のデータを抽出するSQLを作成し,『SQLビュー』,『デザインビュー』,『出力結果』を記述しなさい。 問題2. 商品テーブルと発注明細テーブルを,商品テーブルの『ID』と発注明細テーブルの『商品ID』で『内部結合し』,商品テーブルの『商品名』,発注明細テーブルの受取日の月だけを『受取月』の別名で表示し,受取日の受取月が3~4月のデータを抽出するSQLを作成し,『SQLビュー』,『デザインビュー』,『出力結果』を記述しなさい。 ※回答はSQLだけで結構です(唯書き写すだけと言う訳では有りません)。Accessを初めた許りですので,『参考書を良く読んで,自分でやれ』と言う様な回答だけは,絶対に止めて下さい。

Microsoft Access263閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

このベストアンサーは投票で選ばれました

0

○問題1: 1つ疑問ですが、受注明細テーブルの『単価』×『数量』・・・ →普通の正規化を考えると、単価は『商品テーブル.[単価]』が正しいと思います。 外部結合する必要があるみたいですし、受注ごとに単価が変わる仕様なんですかね・・・ Accessというより一般的なSQLになってしまっていますが、Accessでもたぶん(?)いけると思います。 ※「商品テーブルに受注明細テーブルを~左外部結合」となっているので下記で書きます。 ただ、商品テーブルの必須項目と思われる『ID』列がNullになることってあるんですかね・・・? SELECT A.[商品名], B.[単価] * B.[数量] AS '金額' FROM 商品テーブル AS A LEFT OUTER JOIN 受注明細テーブル AS B ON A.[ID] = B.[商品ID] WHERE B.[単価] * B.[数量] >= 1000000; ○問題2: 受取日はDatetime型のカラムなんですかね? テキスト/Varchar型とかだと変わってきたりすると思います。 SELECT Format(B.発注日,"m") AS '受取月' FROM 商品テーブル AS A INNER JOIN 発注明細テーブル AS B ON A.[ID] = B.[商品ID] WHERE Format(B.発注日,"m") between "3" and "4"; 他にもやり方はあると思いますが、とりあえずこんな感じで。