アプリ版:「スタンプのみでお礼する」機能のリリースについて

主キー、副キーの組み合わせでレコード数をカウントして条件にあったものでかつ特定条件のレコードを出したいのですがどのようにしたらいいでしょうか?
例えば画像のようなテーブルとします。(テーブル名はTANAです)
棚コードが主キー、商品コードが副キーとしたときこの組み合わせでカウントしてレコード数が1つしかないものを抽出します。

select 棚コード, 商品コード from TANA group by 棚コード, 商品コード having count(*) = 1;
をすれば
棚コードと商品コードの組み合わせで
「T1」&「OP123」
「T5」&「A7777」
が抽出できるかと思います。
この条件に加えて、担当者が「鈴木」か「山田」のものだけを拾い上げるにはどのようなSQLを書けばいいでしょうか?
(例だと山田しか出てきませんが・・・)
詳しい方よろしくお願いいたします。Ora10gが対象です。

「レコード数をカウントしてから特定条件で検」の質問画像

A 回答 (3件)

osamuyさんの回答のとおり、まず提示のSQL自体が期待する結果にならないですよね。


「T1」&「OP123」と「T5」&「A7777」を抽出する条件を再度明確にしてもらえますか?
>棚コードが主キー、商品コードが副キーとしたときこの組み合わせ
明らかにこれは違いますよね。
    • good
    • 0
この回答へのお礼

ありがとうございます 大変参考になりました!

お礼日時:2011/07/19 23:44

ありゃ、、No.1のだと、「OP456」も抽出するから、仕様を満たさないですね。


それ以前に、

> select 棚コード, 商品コード from TANA group by 棚コード, 商品コード having count(*) = 1;

が、T2&PP555やT3&QTARO3などのレコード(最終的に全レコード)を返すような。
とすると、T1&OP123とT5&A7777を抽出するなら、こんな感じかな:

select * from TANA where 棚コード in (select 棚コード from TANA group by 棚コード having count(*) = 1)
and 担当者 in ('鈴木','山田');

試さないで書いてますが。
    • good
    • 0
この回答へのお礼

ありがとうございます 大変参考になりました!

お礼日時:2011/07/19 23:44

select 棚コード, 商品コード from TANA where 担当者 in ('鈴木','山田') group by 棚コ

nt(*) = 1;
    • good
    • 0
この回答へのお礼

ありがとうございます 大変参考になりました!

お礼日時:2011/07/19 23:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!