お世話になります。
同一グループで、順位1位~順位7位中で、フラグ(▲)が入力されているグループを抽出したいのです。
営業1は、順位1、順位3、順位6、の横にグラグ(▲)が入力されているので、抽出する。
営業2は、順位1、順位3、順位8、の横にグラグ(▲)が入力されているので、抽出しない。
このようなクエリは、サブクエリになると思うのですが、
どのように記載するのでしょうか?
SELECT * FROM テーブル1
WHERE 部署 IN
(
SELECT 部署 FROM テーブル1
WHERE ( 順位 = 1 AND LEN(フラグ)>0)
OR ( 順位 = 2 AND LEN(フラグ)>0)
OR ( 順位 = 3 AND LEN(フラグ)>0)
OR ( 順位 = 4 AND LEN(フラグ)>0)
OR ( 順位 = 5 AND LEN(フラグ)>0)
OR ( 順位 = 6 AND LEN(フラグ)>0)
OR ( 順位 = 7 AND LEN(フラグ)>0)
GROUP BY 部署
HAVING Count(1) = 7
);
↑何も抽出されません。
SELECT * FROM テーブル1
WHERE 部署 IN
(
SELECT 部署 FROM テーブル1
WHERE ( 順位 = 1 OR LEN(フラグ)>0)
OR ( 順位 = 2 OR LEN(フラグ)>0)
OR ( 順位 = 3 OR LEN(フラグ)>0)
OR ( 順位 = 4 OR LEN(フラグ)>0)
OR ( 順位 = 5 OR LEN(フラグ)>0)
OR ( 順位 = 6 OR LEN(フラグ)>0)
OR ( 順位 = 7 OR LEN(フラグ)>0)
GROUP BY 部署
HAVING Count(1) = 7
);
↑は構文エラーです。
お手数ですが、ご教示をお願いしいます。
( 8位以下が存在しないグループも含む )
両方の条件を満たしているグループを抽出したい
という解釈でいいでしょうか。
ご提示いただいたコードでできました。
ありがとうございました。