- ベストアンサー
SQL 繰り返し項目を表示
以下の条件 カラム「C1」が主キーのテーブルがAとB↓ テーブルA C1| --- AA| テーブルB C1|C2| -----| AA|11| AA|22| AA|33| とあった場合に、抽出結果を C1|C2 | ---------| AA|112233| にするためにはどのようなSQLを組めばいいのでしょうか?
- NoMusicNoLife49
- お礼率78% (75/96)
- MySQL
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まずC2の型によってやりかたがことなります もしC2が文字列型であればこんな感じ select C1,group_concat(C2 separator '') AS C2 from テーブルB で、テーブルAとテーブルBをどうつなげたいのか書いていないので そこは自力でやってください
関連するQ&A
- SQLの記述について
SQLの記述で Aトランザクションテーブル(以後Aテーブル)とBマスタテーブル(以後Bマスタ)が有り, AテーブルにBマスタの内容を反映させ或る条件のデータだけ抽出は可能でしょうか? 例 Aテーブルの内容をBマスタを検索しデータがAの場合のみ抽出 Aテーブル Bマスタ キー データ キー データ 001 0001 001 A 001 0002 002 B 002 0003 003 A 001 0004 004 C 002 0021 003 0005 004 0001 実行結果 キー データ 001 0001 001 0002 001 0004 003 0005 上記の結果のように,Aテーブルの内容からBテーブルを見て条件を判断しての抽出は可能でしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- SQL について教えて下さい
---------------------------------------- テーブルAの カラム1、カラム2のデータが 10、作業A 20、作業B 30、作業C ---------------------------------------- テーブルBの カラム1、カラム2のデータが 10、2013/1/1 10、2013/2/1 20、1999/1/1 20、1999/2/1 ---------------------------------------- のようなデータがあります テーブルA、テーブルBのカラム1はリレーションです この2のテーブルから、テーブルBの最新日付の カラム1のグループ毎に選択するSQLを教えて下さい ---------------------------------------- 結果 10、作業A、2013/2/1 20、作業B、1999/2/1 ---------------------------------------- select テーブルA.カラム1,テーブルA.カラム2,テーブルB.カラム2 で、条件をどうしたら、テーブルBの最新日付を取り出せますか
- ベストアンサー
- Oracle
- SQLについて教えてください
お世話になっております。 以下、取得したい内容です。 この内容に対して、どのようにSQLを書けばよいか良いか教えて頂きたいです。 (1)DBの全テーブルに対して特定のカラムを取得したい。(カラム名はA,Bとする) (2)取得したカラム.Aに格納されている各値に対して、カラム.Bの各レコードの項目には何の値が格納されているか知りたい。 DBはオラクルですが、オラクルでしか使えないSQL構文はつかないようにしたいです。 自分で考えたSQLは、 SELECT A,B FROM * GROUP BY A,B ですが、そもそも全テーブルを指定する際に使用するのが、「*」では正しくないような気もします。 説明がつたなくて申し訳ございません。 宜しくお願い致します。 ・テーブルイメージ テーブル.test1 +--------+------+ | No | A | B | +--------+------+ | 01 |AA| 1 | | 02 |AA| 1 | | 03 |AB| 2 | | 04 |AB| 2 | | 05 |AC| 3 | | 06 |AC| 3 | | 07 |AC| 3 | +--------+------+ テーブル.test2 +--------+------+ | No | A | B | +--------+------+ | 01 |AA| 1 | | 02 |AA| 1 | | 03 |AB| 2 | | 04 |AB| 2 | | 05 |AC| 1 | | 06 |AC| 3 | | 07 |AC| 3 | +--------+------+ テーブル.test3 +--------+------+ | No | A | B | +--------+------+ | 01 |AA| 3 | | 02 |AA| 1 | | 03 |AC| 2 | | 04 |AC| 3 | +--------+------+
- 締切済み
- Oracle
- データがあれば○○なければのSQL
基本的なことなのかもしれませんが・・・ AとBというテーブルがあり、あるタイミングでAを元にBを作成します。つまりBはデータがある場合とない場合があります。また、2つは関連番号で紐づいています。 Aテーブルを抽出したい時に、抽出条件は以下です。 ・Bテーブルのステータスが1であれば抽出 ・Bテーブルのステータスが0であれば非抽出 ・Bテーブルにデータがなければ抽出 INNER JOINだとデータがない時に抽出できないし、 WHERE句にCASE句を入れればいいのかなと思いましたが、テーブルにデータがあればなんて条件書けないしで詰まりました。 SELECTした結果に対して条件つけて抽出する手も思いつきましたが もっと美しいSQLがあれば教えてもらえないでしょうか。 環境はSQLServerです。よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- SQLについての質問です
SQLの質問です。(Oracle) 二つのテーブル T1, T2 に、それぞれ三つのカラム A, B, C があり、A, B の値が同じである行においてT1のCからT2のCへ値をコピーするSQLを教えてほしいです。 以下、そのデータ例です。 テーブル T1 A B C --------- 1 AAA 10 2 BBB 20 3 CCC 30 テーブル T2 A B C --------- 1 AAA 0 2 XXX 0 4 YYY 0 この場合、結果としてテーブル T2は1行目だけがカラム Cの値がT1からコピーされ A B C --------- 1 AAA 10 2 XXX 0 4 YYY 0 としたいです。
- 締切済み
- その他(ソフトウェア)
- SQL抽出順番
SQLの質問なんですが 以下のSQLがあるとします。 select カラムA、カラムC from test_table where in ('AAA','BBB','CCC'); ※条件はカラムAの値を使用しています。 結果が AAA 111 BBB 222 CCC 333 と出るとします。 下のように条件を変えたとき where in ('BBB','CCC','AAA'); BBB 222 CCC 333 AAA 111 と抽出と変わるようにしたいのですが、 (in句の左から順番にレコードが抽出したいです) 何か良い方法はありますでしょうか? rowid順で出力されてしまうのでしょうか? 以上です。 よろしくお願いします。
- ベストアンサー
- Oracle
- T-SQL 優先順によるデータの抽出
こんにちは。 あるテーブル"T_TABLE"に項目がC1(主キー)、C2が有り、データが以下のように登録されていた場合、 |C1|C2| ------| |BB|XX| ------| |AA|XY| ------| |DD|XZ| ------| とあった場合、 カラムC2に"XY"の値を含む行を第一に優先し、同カラムに"XZ"を含む行を第2に優先し、同カラムに"XX"を含む行を第3に優先して抽出するにはどのようにすればよいのでしょうか? 抽出するイメージは XY XZ XZ の順です。
- ベストアンサー
- SQL Server
- SQL 同テーブル、同フィールドの文字列連結
以下の様にSQLで実現したいと思っております。 なお、DBはOracle10Gを利用しております。 親と子テーブルがあり以下の構成となっております。 ■親テーブル ID,カラムA 1 ,AA 2 ,BB 3 ,CC ■子テーブル ID,枝番,カラムB 1 ,1 ,あああ 1 ,2 ,いいい 2 ,1 ,ううう 2 ,2 ,えええ 2 ,3 ,おおお 3 ,2 ,かかか ※IDカラムは親テーブルと子テーブルは1:1です 子テーブルの枝番カラムはIDに対してN件です。 やりたい事としては、上記の2テーブルより、以下の結果を出力したいです。 ID,カラムA,カラムB 1 ,AA ,あああ いいい 2 ,BB ,ううう えええ おおお 3 ,CC ,かかか 親テーブルを元にして、 親テーブルに紐づく子テーブルのカラムBを連結して出力 するSQLをご教授いただけますでしょうか
- ベストアンサー
- その他(データベース)
- ビュー(view)のSQL
SQL初心者で困っております。 どのようなSQLを作成すれば良いか ご助言頂ける方がいらっしゃいましたら よろしくお願いいたします。 テーブルにイメージは以下通りです。 項目1,日付,月,項目2,項目3 1234 ,6/2 ,6 ,A ,1 1234 ,6/4 ,6 ,A ,2 1234 ,6/5 ,6 ,A ,3 1234 ,6/6 ,6 ,B ,1 1234 ,6/6 ,6 ,B ,2 1234 ,6/6 ,6 ,B ,3 1234 ,7/2 ,7 ,A ,1 1234 ,7/4 ,7 ,A ,2 主キーは、項目1,日付です。 ビューで項目1,月をグループ化して、 項目2の昇順のトップ その中で項目3の昇順のトップ のレコードを抽出したいと思います。 結果が以下のようなイメージです。 1234,6,A,1 1234,7,A,1
- 締切済み
- その他(データベース)
お礼
ご回答頂き、ありがとうございました。