- PR -

SQLでの抽出条件について

投稿者投稿内容
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-08-04 13:12
引用:

よぴさんの書き込み (2006-08-04 12:13) より:

Katzeさんの式にて、試したところ該当のデータを取得することができました。

しかし、oracleさんの式では
@の条件のときと結果が同じで絞ることができませんでした。

Katzeさんの式とoracleさんの式で、違いがでる原因はなんでしょうか?


よぴさんのサンプルそのものだと同じ結果になりそうですが、その他の項目を追加した場合と、GROUP BY の内容の違いが出ているのではないですかね?
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-08-04 13:20
失礼しました。試してみたら上手くいきませんでした。
その他の列がある場合は下記のようにしないとダメみたいです。

SELECT A.* FROM テーブル名 A INNER JOIN (
SELECT プロジェクトID,サブプロジェクトID, MAX(版数) AS 版数 FROM テーブル名
GROUP BY プロジェクトID,サブプロジェクトID) B
ON A.プロジェクトID = B.プロジェクトID AND A.サブプロジェクトID = B.サブプロジェクトID
AND A.版数 = B.版数
WHERE (A.プロジェクトID = '1')

お試しください。


[ メッセージ編集済み 編集者: Katze 編集日時 2006-08-04 13:25 ]
oracle
常連さん
会議室デビュー日: 2003/12/04
投稿数: 29
お住まい・勤務地: さいたま
投稿日時: 2006-08-04 13:25
失礼しました。

サブプロジェクトIDの検索条件が抜けてました。

Katzeさんの直前のSQLですね。
よぴ
会議室デビュー日: 2003/12/22
投稿数: 9
投稿日時: 2006-08-04 13:32
R・田中一郎さん、Katzeさん、oracle
お昼明けにさっそくのレスありがとうございます。
私もお昼からずっとSQL文とにらめっこしながら考えておりました。

Katzeさんが記述されたSQL文を早速試したところ、
該当のデータを取得することができました。

このSQL文にとりかかるまでは、こんなもの5分あればできるだろうと
鼻をくくってた自分が情けないです・・・。
とても助かりました。

私ごとでありますが、.NETの開発を始めて3年くらいたちましたが、
SQLに対して敬遠というかSELECT文でデータをある程度取得してから
アプリのほうで該当データを絞る、という手法をとっていたもので
SQL文自体スキルがあがらなかったのが現状です・・・。

これを機にSQLのスキルを向上させたいと思います。
みなさん、短時間の間に色々ありがとうございました。
私も知識を提供する側に早くなれるようにがんばります!

スキルアップ/キャリアアップ(JOB@IT)