• 締切済み

SQL文を教えてください

以下の2つのテーブルから結果に書かれている内容を取得したいのですが、どのようなSQLを作成すればよいでしょうか? 料理テーブル 料理名 値段 ラーメン 1000 カレー 700 焼肉定食 800 オプションテーブル 料理名 オプション(00:ご飯、01:味噌汁、02:サラダ) ラーメン 00 ラーメン 01 カレー 00 焼肉定食 00 焼肉定食 01 焼肉定食 02 取得したい結果 ご飯をa、味噌汁をb、サラダをcとして、オプション有の場合は'1'を、なしの場合は'0'をたて、 オプションをabcと3桁で表したいのですが。 料理名 オプション ラーメン 110 カレー 100 焼肉定食 111 説明が下手ですいませんが、よろしくお願いします。

みんなの回答

  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.3

こんなのでどうでしょ。 SELECT A.料理名 , ISNULL(MAX(CASE B.オプション WHEN '00' THEN '1' END), '0') + ISNULL(MAX(CASE B.オプション WHEN '01' THEN '1' END), '0') + ISNULL(MAX(CASE B.オプション WHEN '02' THEN '1' END), '0') AS オプション FROM 料理テーブル AS A LEFT JOIN オプションテーブル AS B ON A.料理名 = B.料理名 GROUP BY A.料理名

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

手元にSQL Serverが無いのですが、 以下のような感じでどうかなと思います。 SELECT 料理名, CASE WHEN A=0 THEN '0' ELSE '1' END + CASE WHEN B=0 THEN '0' ELSE '1' END + CASE WHEN C=0 THEN '0' ELSE '1' END AS オプション FROM (SELECT 料理名, ,SUM(CASE WHEN オプション='00' THEN 1 ELSE 0 END) AS A ,SUM(CASE WHEN オプション='01' THEN 1 ELSE 0 END) AS B ,SUM(CASE WHEN オプション='02' THEN 1 ELSE 0 END) AS C FROM オプションテーブル GROUP BY 料理名)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

オプションの値で2(もしくは10)のべき乗を計算して、集計するとか。

関連するQ&A

  • SQLサーバー2000でのSQL文の質問です。

    開発環境はSQLサーバー2000です。 下記のような親子関係のテーブルがあった場合に、【結果】のような結果を得れるようなSQL文を教えていただきたいです。 【親】 -------------------------------- |品番 |品名 -------------------------------- |1 |ラーメン -------------------------------- |2 |カレー -------------------------------- |3 |うどん -------------------------------- 【子供】 -------------------------------- |品番 |枝番 |食べた日 -------------------------------- |1 |1 |1/1 -------------------------------- |1 |2 |1/2 -------------------------------- |3 |1 |1/3 -------------------------------- |3 |2 |1/4 -------------------------------- |3 |3 |1/5 -------------------------------- |3 |4 |1/6 -------------------------------- 【結果】 親子テーブルを連結したSQLを実行すると -------------------------------- |品番 |品名 |食べた回数 -------------------------------- |1 |ラーメン|2 -------------------------------- |2 |カレー |0 -------------------------------- |3 |うどん |4 -------------------------------- のような結果が帰ってくるSQLが作成可能でしたらご教授いただけますようよろしくお願い致します。

  • 複数を抽出したい。

    menu テーブル ID 1 / NAME ご飯 ID 2 / NAME 味噌汁 ID 3 / NAME 焼しゃけ ID 4 / NAME 焼さば ID 5 / NAME 肉じゃが であり setmeny テーブル ID 1 / NAME 焼しゃけ定食 / M1_ID 1 / M2_ID 2 / M2_ID 3 ID 2 / NAME 焼さば 定食 / M1_ID 1 / M2_ID 2 / M2_ID 4 ID 3 / NAME 肉じゃが定食 / M1_ID 1 / M2_ID 2 / M2_ID 5 とデータを入力してあるとき 1 / 焼しゃけ定食 / ご飯 / 味噌汁 / 焼しゃけ 2 / 焼さば 定食 / ご飯 / 味噌汁 / 焼さば 3 / 肉じゃが定食 / ご飯 / 味噌汁 / 肉じゃが という表を取り出す方法はありますか? select setmenu.ID, setmenu.NAME, menu.NAME from setmenu join enu where setmenu.M1_ID = menu.ID; で 1 / 焼しゃけ定食 / ご飯 2 / 焼さば 定食 / ご飯 3 / 肉じゃが定食 / ご飯 までは出せるのですが。 / 味噌汁 / 焼しゃけ / 味噌汁 / 焼さば / 味噌汁 / 肉じゃが をどう出して良いかわかりません。 またはもっと効率が良い方法あるのでしょうか?

  • とん太のささみ衣揚げ定食!

    とん太のささみ衣揚げ定食のカロリーが知りたいのですが、どのくらいでしょうか? ささみの衣揚げ3本と、ごはんと味噌汁とサラダがついています。 ささみは15cmくらいです。 だいたいのカロリーでもよいので、よろしくお願いします(>_<)

  • シチューごときに夕食の主役を張らせて良いのか

    彼女が夕食にクリームシチュー (大皿。具:牛肉、人参、じゃが、後何かよくわからん) とハムサラダ、ごはんの3品を作ってくれました 味はまあまあでしたが私は何か物足りなく感じ、 「シチューはあくまで脇役であり、肉か魚系のメインおかずがあって そのかげにもっと小ぶりな鉢でシチューは控えているのが普通でないか」と 言ったところ、彼女は帰ってしまったのでひとりで洗い物をしました 次の日も同じメニューだったのでもう一度 「だって焼肉定食は焼肉にサラダとごはんがつくもんだし サバの味噌煮定食もサバにサラダとごはんがつくけど シチューにサラダとごはんつけてシチュー定食っていわれたら怒るでしょ」 と言いました。その日もひとりで洗い物をしました 私としてはシチューは飲み物なのか食べ物なのかわからないし 食べ物だとしても具をひろってツマミ食いしてるような形なので 完食してもなにか足らない気分になってしまいます わたしと彼女、どっちが正しいのでしょうか? またもしシチュー定食をもう少しボリュームあるものにしたいとき どんな工夫がありますでしょうか? アドバイスをお願いします

  • Access 選択クエリでAND検索

    現在、フォーム1にはリストボックスが3つあり、それぞれ食べ物の区分に分かれており、それぞれのリストボックスに食べ物の種類が表示されています。 区分は、麺類、肉系、ご飯系と分かれており、 それぞれの、ラーメン、冷やし中華、焼き肉、しゃぶしゃぶ、カツどん、カレーライス等と入力されています。 そして、それぞれのリストボックスで選択した項目は、[表示]ボタンを押すことでテーブル1に値が保存されるようになっています。 そして、現在、テーブル1には、下記のように、食べ物の種類が入力されています。 テーブル1 ---------- 焼き肉 ---------- ラーメン ---------- カレーライス ---------- そして、別のテーブル2には下記のように、マスターテーブルとしてそれぞれの名前と好きな食べ物の種類が入力されています。 佐藤|焼き肉|カレーライス 鈴木|ラーメン|カレーライス 田中|焼き肉|ラーメン|カレーライス (構造) 名前ID テキスト型 FoodID 数値型 (実データ) NameID FoodID 佐藤  1 佐藤  3 鈴木  2 鈴木  3 田中  1 田中  2 田中  3 上記のテーブル1とテーブル2を比較し、選択クエリで抽出させると、焼き肉、ラーメン、カレーライスを含む社員を抽出するため、佐藤、鈴木、田中の全員が抽出されてしまいます。 これを、焼き肉、ラーメン、カレーライスの3つすべてを好きな人を抽出させたいと思っています。 (結果は、田中となるようにしたいです。) ちょっと分かりづらいかもしれませんが、 上記のようにすべてを含む人を抽出させるにはどのようにしたらよいでしょうか? 宜しくお願いします。

  • 食べ過ぎた?

    毎日毎日食べ過ぎて 後悔してしまいます。 私は 単品のものが嫌なんで 絶対に3品以上はあります。 今日朝は ご飯茶碗一杯に味噌汁に ウィンナーにおからに ヤクルト、卵とほうれん草のココット 間食にまた味噌汁 そして昼は カレーライス(茶碗一杯半のご飯と具沢山ルー沢山) にサラダ です。 16歳 155、5cmぐらいで 体重が47kgぐらいもあります… 基礎代謝は1300~かな。 明日は 付き合いで夜焼き肉食べ放題です。 今回私は 夜普通に 食べてもいいですか?

  • 注文したものが違う順番で出てきたら怒る?

    ニュースで、ラーメンとぎょうざを頼んでぎょうざが先に来るように頼んだのに、ラーメンが先に来たことに怒った客が、3時間も店に居座って逮捕された事件がありましたね。 皆さんだったらどうしますか? 注文すると、一方が先に来ることがありますね。 焼肉定食を頼んだらご飯だけが先に来たり、セットメニューを頼んだら茶碗蒸しと味噌汁が先に来たり、アイスコーヒーは後でお願いと言ったのに一緒に出てきたり・・・いろんなケースがあると思いますが、注文したものが違う順番で出てきたり、脇役が先に出てきたら怒りますか? ちょっとイラッと来ますか? 私はご飯が先というようなことだったら、漬け物があればちょっとずつ食べながら待ちますが、いきなりデザートが出てきたら、言いたくなりますね。

  • 1歳のとりわけメニューについて

    もうすぐ1歳になる娘がいるんですが、離乳食は味噌汁以外、冷凍してある食材を使って別に作っているのですが取り分けできるようになるといいかなぁと思っているのでご教授下さい。 大人の食事は以下の通りです。 ・カレー、シチュー、パスタ、うどんは殆ど作りません ・夕飯はご飯、サラダ、おかず(肉or魚)、他一品(煮物とか)みたいなメニュー ・朝、昼は殆どつくらず納豆ご飯と味噌汁、みたいな感じ ・煮物は圧力鍋を使って作ってます そもそも大人の食事がしっかりしてないととりわけ出来ないという印象なんですが、特に朝昼と大して料理しないのでこういう場合はやはり別で用意するしかないですよね? ここ最近の夕飯のメニューだと、 ●ご飯、豚肉の味噌炒めをキャベツの千切りに乗せたもの、大根と人参の味噌汁、じゃことピーマンの当座煮●ご飯、蒸し鮭の野菜あんかけ、ジャガイモとシメジの味噌汁、筍・人参・厚揚げ・こんにゃくの煮物 という感じです。最近はサラダ作るのが面倒で他の料理の中に野菜を混ぜる事が多くなりました… 煮物ならとりわけ出来るかなとも思うんですが、味噌汁と内容が被る事もあるのでそれもどうなのかなとか、大人がそれほど野菜の品目多く食べない(量は多い)のでどうなのかなとか、考えてます…

  • 栄養指導をお願いします

    一人暮らしの30代です。 味噌汁以外の料理ができないので、煮干しや納豆をよく食べています。 煮干しと納豆は大好きなので、飽きないのですが、栄養が気になります。 食事は 朝 ご飯、味噌汁、納豆、煮干し、サラダ 昼 コンビニ食 夜 朝と同じ サラダや味噌汁で他の栄養素を補おうとしたら何を加えたら良いでしょうか?

  • 好き嫌いの多い男性への手料理。

    好き嫌いの多い男性への手料理。 遠方に赴任中のアラフォー彼氏に会いに来ています。 自炊が全く出来ない人なので、栄養が偏り痩せてしまいました。 私がいる間はなるべく野菜料理を中心とした手料理を食べさせたいのですが、好き嫌いが激しく困っています。 (1)野菜は基本的に苦手 (2)煮物、煮魚は食べない (3)甘辛い味付けは嫌い (4)味噌味も嫌い(朝だけお味噌汁を無理やり飲ませています) (5)トマト味、酸味のある味も嫌い (6)塩コショウの味付けが好き (7)お酒大好き(毎日晩酌) (8)居酒屋にあるメニューが好き(モツ煮や唐揚げ) (9)牛丼屋の牛丼、焼肉店の焼き肉が大好き (ジャンクさが良いようで、家では食べない) (10)ラーメン、餃子好きだが蕎麦とウドンは食べない 今のところ、朝は 白米、納豆、卵(目玉焼きか出汁巻き)、お味噌汁を出しています。 昼は外食かコンビニ弁当 夜は 肉野菜炒めと具沢山のコンソメスープや中華スープ、 又はハンバーグやパスタ、オムライスとサラダ(サラダはほとんど手をつけず) (1)から(4)がダメなので和風の常備菜を用意出来ず、 又、キッチンがIHの一口のみの為、焼き魚、揚げ物には向きません。 (5)のトマトがOKなら洋食の幅が広がるのですが…。 (8)から(10)を食べて、よくお腹を壊しています。 (持病でお腹が弱い) 今夜はカレーとサラダですが、大根サラダは却下されました(胃腸に優しいのに…)。 もうお手上げです。 少しでも野菜を食べさせたいのですが、お勧めメニューはありますか? メインでも副菜でも何でも構わないので、どうぞ宜しくお願いします。