![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
下記のようなテーブルがあったとして、
テーブルAを基準に考えたいのですが、、、、
テーブルAに付加する形でテーブルBのデータのidカウント数が最も少なく、idが同じもの中でdate日が一番新しいデータを表示し、古いものから並べかえかつテーブルCにidがあるものは一番最後にくるという風に並べかえたいのですが、無理でしょうか?
現在下記のようなSQLを考えていますが、うまくいかないです。。
select * from A left join(select id,case when count(id)=0 then 0 else count(id) end AS cnt FROM B group by id order by date) as b on A.id=b.id left join(select id from C) as c on A.id=c.id order by c.id desc,b.cnt;
エラー↓
in the GROUP BY clause or be used in an aggregate function
テーブルA
id | name | comment|
1 あ おい
2 い えい
3 か テス
テーブルB
id | event | date |
1 test1 2005/1/4
2 test1 2005/1/4
1 test2 2005/3/4
2 test2 2005/3/4
1 test3 2005/5/4
テーブルC
id |
1
理想の結合データ
id | name | comment| cnt | date |
3 か テス 0
2 い えい 2 2005/3/4
1 あ おい 3 2005/5/4
No.1ベストアンサー
- 回答日時:
内部結合で。
select A.id,A.name,A.comment,
count(B.id) as cnt,
max(B.date) as date,
'0' as CK
from A,B
where B.id=A.id and not exists(
select id from C where C.id=A.id
)
group by A.id,A.name,A.comment
UNION
select A.id,A.name,A.comment,
0 as cnt,
NULL as date,
'0' as CK
from A
where not exists(
select id from C where C.id=A.id
)
and not exists(
select id from B where B.id=A.id
)
group by A.id,A.name,A.comment
UNION
select A.id,A.name,A.comment,
count(B.id) as cnt,
max(B.date) as date,
'1' as CK
from A,B,C
where B.id=A.id and C.id=A.id
group by A.id,A.name,A.comment
UNION
select A.id,A.name,A.comment,
0 as cnt,
NULL as date,
'1' as CK
from A,C
where C.id=A.id and not exists(
select id from B where B.id=A.id
)
group by A.id,A.name,A.comment
order by CK,cnt;
こんなにいっぱい書いていただきありがとうございます。
でも、できませんでした。。なんででしょう。。
adding missing FROM-clause entry in subquery for table "A"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIQUEをつけたときのINDEXテー...
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
クエリアナライザのsp_helpコマ...
-
チェックボックスから、データ...
-
特定カラムの値を変更したいの...
-
Viewにインデックスは張れ...
-
DELETE文でFROM句を省略した場合
-
データを削除しても表領域の使...
-
異なるスキーマからデータを抽...
-
Access レコードを追加できませ...
-
CLOB型へのINSERT
-
特定のスキーマのテーブルを一...
-
viewのバックアップ
-
ORA-00959: 表領域'****'は...
-
ACCESS 複数テーブル・複数フィ...
-
INDEXの無効化
-
SQLでスキーマ名(所有者名)の...
-
select insert 句
-
アナライズとインデックス作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
UNIQUEをつけたときのINDEXテー...
-
クエリアナライザのsp_helpコマ...
-
SQL文作成のお願い
-
pl/pgsqlで変数の扱い
-
マルチテーブル・インサート
-
近い時間によるテーブル結合
-
SQL SELECT文 別テーブルのレコ...
-
3つのテーブルの処理について
-
SELECT結果から重複行を除く方法
-
チェックボックスから、データ...
-
pg_queryで変数の取り扱い方
-
postgreSQLの正規表現
-
phpPgAdminからSQL文を発行し、...
-
指定された趣味を持つメンバー...
-
特定カラムの値を変更したいの...
-
ベスト3の抽出方法
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
おすすめ情報