データベース ビューについてとオリジナル問題を解く

uchiumiです。
今日のDBは、ビューについての簡単な説明といくつかの結合を使ったいくつかの問題を解きました。

正規化について

今回ビューを学ぶに当たって、正規化という言葉がでてきたので、それについて少し学びました。
正規化をするメリットとして、入力や変更の際の無駄を省けるということでした。

ビューについて

ビューを使うと、いちいち結合などの処理をしなければならない場合などに、その作業を省くことができます。
ビューは更新はできないけれど、それ以外は普通のテーブルと同じ様なものなので、使い方によってはとても便利なものだということでした。

問題を解く

さて今日は、いつも使っている問題集にある練習問題の他に、講師の方が考えた問題を1問やりました。

問題:1回の売上額が一番高い、商品名と商品価格と売上個数を表示する。

今まで習ったことでできる問題だったのですが、意外と難しかったです。
私は一番高い売上額を表示することはできたのですが、商品名や商品価格といった項目を出すことができませんでした。
尚、テーブルの簡単な仕様は以下のようになっています
*salesテーブル

  • SaleID
  • Quantity
  • CustomerID(FK)
  • ProductID(FK)
  • EmployeeID(FK)
  • SaleDate

*productsテーブル

  • ProductID
  • ProductCode
  • ProductName
  • Price
  • CategoryID(FK)

以下、解答になります


SELECT P.productname AS 名前, P.price AS 値段, S.quantity AS 売上数量
FROM sales AS S, products AS P
WHERE S.productid = P.productid AND
           S.quantity*P.price = (
             SELECT MAX(S.quantity*P.price)
             FROM sales AS S, products AS P
             WHERE S.productid = P.productid
           );

※尚、このテーブルはSQL書き方ドリル(改訂新版)のテーブルを使用しています。
詳しいテーブルの内容や、答えが正しいかを確認したい方は是非この本をご購読下さい。

解答はサブクエリを使ったものですが、久々にやると、利点や使い方など忘れていたので、思い出して使うことができませんでいした。
次からは同じ様な問題が出た時に思いつけるよう復習していきたいと思います。

さて、今日はDB以外にもemacsのコマンドで、M−uで1単語が大文字に、M-l で1単語が小文字になることを初めて知りました!
たまに大文字の所を小文字で打ってしまったりするので、格好良くSQL文を打てるようになる為にもこれを使いこなしていきたいと思います!

1 件のコメント so far »

  1. by スタートアップ研修記 » データベース 相関副問い合わせ, on 07.25.08 @ 6:36 PM

     

    [...] 困りました。ここはもう一度勉強し直して、後日追記します。 今日は先日のテストの解答結果と解説も見ました。 [...]

Comment RSS · TrackBack URI

コメントをどうぞ

名前: (Required)

eMail: (Required)

Website:

Comment:

Spam Protection by WP-SpamFree