2

最初の 2 行が Company、Year であるテーブルがあります。各企業にはいくつかの年がありますが、必ずしもすべてではありません。

ABC | 2010
ABC | 2011
ABC | 2012
BBC | 2011 //does not have all the years, don't want to select it

すべての年 (一部だけでなく) を持つ企業のリストを選択したいのですが、それを行うための選択クエリを作成するのに問題があります。これは本当に簡単だと思いますが、何らかの理由で理解できません。

4

3 に答える 3

3

試す

select company
from your_table
group by company
having count(distinct year) = (select count(distinct year) from your_table)
于 2012-10-05T16:37:07.473 に答える
3
Select * FROM Company Where CompanyId In(
      select CompanyId From Company
      group by CompanyId
      having count(*) = (select count(distinct Year) from Company)
)

http://www.sqlfiddle.com/#!3/c2f81/11

何年あるべきかをすでに知っている場合は、特定の年を選択するのではなく、明らかにその数を言うことに注意してください。

于 2012-10-05T16:37:32.050 に答える
0
SELECT Company
FROM Table
GROUP BY Company
HAVING COUNT(Distinct YEAR) = 3
于 2012-10-05T16:38:56.410 に答える