SQL分の作り方

このQ&Aのポイント
  • SQL分の作り方について説明します。TableAとTableBの2つのテーブルを組み合わせてTable3というテーブルを表示させたい場合、どのようなSQL文を書けば良いのかを解説します。
  • Table3に表示させたい項目は、ID、名称、時間です。しかし、時間が入力されていない項目は表示させることができません。そこで、時間が入力されている項目のみを表示させるためのSQL文を紹介します。
  • 以上の要件を満たすためには、INNER JOINを使用してTableAとTableBを結合し、時間が入力されている項目のみを表示するように条件を指定する必要があります。具体的なSQL文の書き方について解説します。
回答を見る
  • ベストアンサー

SQL分の作り方

いつもお世話になっております。 早速ですが、 TableA ID 時間 1 10 3 20 TableB ID 名称 1 TEST1 2 TEST2 3 TEST3 上記の2つのテーブルを組み合わせて Table3 ID 名称  時間 1 TEST1  10 2 TEST2 3 TEST3  20 と表示させていと思っております。 ID 名称  時間 1 TEST1  10 3 TEST3  20 とは表示させることが出来るのですが、時間が入力されていない項目を表示させることが出来ません。 どのようなSQL文を書けば思い通りの表示をさせることが出来るのでしょうか? 使用ソフトは SqlServer2008R2です。 宜しくお願いいたします。

  • hoido
  • お礼率76% (64/84)

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5086/13298)
回答No.1

select TableB.ID, TableB.名称, TableA.時間 from TableB left outer join TableA on (TableB.ID = TableA.ID);

hoido
質問者

お礼

t_ohta様回答ありがとうございました。 無事思い通りの表示をさせることが出来ました。 本当にありがとうございました。

関連するQ&A

  • このSQL文を教えてください。

    Windows2000(SP3) SQLServer2000(SP3) で開発しています。 テーブルA 項目No,大分類コード,中分類コード,詳細コード,日付,内容 テーブルB 大分類コード,中分類コード,詳細コード,新_詳細コード,内容 TableA,Bでは大分類コード,中分類コード,詳細コードがリンクする このような状況で、TableA,Bを下記のようにjoinして、  TableA.大分類コード,   TableA.中分類コード,  TableB.新_詳細コード, が重複するデータを取得する場合のSQL文を教えてください。 (join) SELECT  TableA.*,  TableB.* FROM  TableA LEFT OUTER JOIN  TableB ON  TableA.大分類コード=TableB.大分類コード  AND  TableA.中分類コード=TableB.中分類コード  AND  TableA.詳細コード=TableB.詳細コード よろしくお願いします。

  • 3つのテーブルを結ぶSQLの書き方

    お世話になります。 3つのテーブルを結びつけるSQLの書き方がわかりません。ご指導お願いします。 [TableA][ID] [TableB][ID] [TableC][ID] [TableA]と[TableB]をLEFT JOINでつなぐ。 上の結果を[TableA][ID]と[TableC][ID]でInner joinでつなぐ。 つまり・・・ SELECT TableA.ID,TableB.ID FROM TabelA LEFT JOIN TableB→この結果 SELECT TableA.ID,TableB.ID TableC.ID From この結果 INNER JOIN TableC ON TableA.ID = TableC.ID こんな感じのことをやりたいのですが、記述の方法がわかりません。 どなたかお知恵をお貸しください。

  • SQL:テーブル結合で該当レコードがない場合

    SELECT TableA.ID,SUM(TableA.量),TableB.金額 FROM TableA,TableB WHERE TableA.ID = TableB.ID GROUP BY TableA.ID,TableA.量,TableB.金額 こんな感じのSQLなんですが TableAをメインテーブルとして ↓のような結果を得るように作り変えれないか考えています ■TableBとの結合レコードあり(金額登録あり) 1,50,1500 ■TableBとの結合レコードあり(金額登録なし) 1,50,(NULLかスペース) 考えているんですが思いつかないのでヒントいただけたらと思います。宜しくお願いします。

  • SQL文を教えてください

    先日SQL文のことです、 tabelC:IDの中分類、IDの中分類名称 があって、以下のSQL文にリレーションを作りたいです: SELECT Mid(tableA.ID,4,2) AS IDの中分類, Sum(tableA.数量) AS 数量の合計 FROM tableA GROUP BY Mid(tableA.ID,4,2); 用は、IDの中分類名称、数量の合計を求めたいです。 ご指導をお願いいたします。

  • SQLを教えてください

    単純そうなのですがSQLが分かりません。 次のような2つのテーブルがあるとします。 TableA ( a VARCHAR2(2) b VARCHAR2(30) ) TableB ( x VARCHAR2(2) y VARCHAR2(30) z1 VARCHAR2(2) z2 VARCHAR2(2) z3 VARCHAR2(2) z4 VARCHAR2(2) z5 VARCHAR2(2) ) この時にTableBはTableAのグループみたいなものでz1からz5までがTableAのaが登録されています(NULLの場合もあります)。ここでTableBの内容を表示するときに x, y, b1, b2, b3, b4, b5 と出力したいのです。 すみませんがよろしくお願いします。

  • SQL文の書き方

    SQL文の書き方を教えて下さい。 以下の2つのクエリー(1のクエリー&2のクエリー)を1つのクエリーで1度に抽出をかけたいのですがSQL文の書き方がわかりません。 データの発生条件としては TableBのField1は必ずTableAのField1に存在するという条件です。 TableAのField1が「AAA」から「EEE」まである場合は、TableBのField1も必ず「AAA」から「EEE」の範囲内で発生します。 よろしくお願い致します。 1のクエリー ---------------------------------------------------------------- TableA Field1 ---------------------------------------------------------------- AAA AAA AAA BBB BBB CCC DDD DDD EEE EEE EEE ---------------------------------------------------------------- Field1をサマライズしてカウントと名称を取得するクエリー Select Count(TableA.Field1) as RecCount, TableA.Field1 From TableA 結果 RecCount  Field1 3      AAA 2      BBB 1      CCC 2      DDD 3      EEE ---------------------------------------------------------------- 2のクエリー ---------------------------------------------------------------- TableB Field1 ---------------------------------------------------------------- BBB CCC CCC EEE ---------------------------------------------------------------- Field1をサマライズしてカウントと名称を取得するクエリー Select Count(TableB.Field1) as RecCount, TableB.Field1 From TableB 結果 RecCount  Field1 1      BBB 2      CCC 1      EEE ---------------------------------------------------------------- 希望する結果 TableAのRecCount TableBのRecCount TableAのField1 3                   AAA 2         1         BBB 1         2         CCC 2                   DDD 3         1         EEE

  • 異なるテーブル間の和

    テーブルAの属性item1とテーブルBのitem1の和を求めるにはSQLでどのように記述すれば良いのでしょうか?? tableA ------ id item1 item2 pointer tableB ------ id item1 item2 pointer という2つのテーブルで,tableBのpointerはtableAのidを指しています.

  • SQLでどうやったらできますか?

    データベース初学者です。どうぞお知恵をお貸しください。 数百人ほどの名前がnameA列に並んでいるtableAと,数万人の名前がnameB列に並んでいるtableBがあります。tableA列の各行の名前が,テーブルBの中に何回出てくるか数えて,結果の数字をtableAの各行2列目(列名はnumber)に表示させたいと思っています。 SQLは初めて触るので,正直言って方法がまったく見当つきません。。どなたかお詳しい方,どうか宜しくご教示ください。

  • 複数表での集計値について

    以下のようなテーブル構造。SQLで 集計値を求めたいのですがCNTの値が tableCの件数を取得してしまいます。 (取得したいのはtableA.ID毎のtableB.ID2の件数) 宜しくお願いします。 ・tableA ------------- ID ------------- ・tableB ------------- ID | ID2 ------------- ・tableC ------------- ID2 | TIME ------------- SELECT tableA.ID ,SUM(tableC.TIME) AS TIME ,COUNT(tableB.ID2) AS CNT FROM tableA,tableB,tableC WHERE tableA.ID = tableB.ID AND tableB.ID2 = tableC.ID2 GROUP BY tableA.ID

    • ベストアンサー
    • MySQL
  • SQLiteのUPDATE文を教えてください。

    UPDATE tableA, tableB SET tableA.name = tableB.name WHERE tableA.id = tableB.id; 上記のSQLが他のデータベースでは動きますが、SQLiteでは動きません。 同意味のSQLはどう書くのでしょうか。お願いします。