78066


初歩的なことのように思うのですが、詰まってしまったのでご教示いただきたいです。

以下のような売上Tableがあったときに、月のカラムの「2021-01-01」と「2021-03-01」にそれぞれレコードがある店舗名のみを抽出したい場合、どのようなクエリを書けば良いでしょうか。

**売上Table**

[code]

    月, 店舗名, 売上
    2021-01-01, AA, 3000
    2021-02-01, AA, 4000
    2021-03-01, AA, 5000
    2021-04-01, AA, 2000
    2021-01-01, BB, 1000
    2021-02-01, BB, 2000
    2021-04-01, BB, 5000
    
[/code]

**望ましい出力結果**

[code]

    店舗名
    AA
    
[/code]

**試したクエリ**  
あたり前なのですが、下記のようにしてしまうと、どちらかに該当するデータが取れてしまいますので、該当しません。  
また、ANDにしてしまうとこちらも当たり前ですが、レコードが0になります。

[code]

    SELECT　店舗名
    FROM 売上Table
    WHERE
    月 = '2021-01-01'
    or
    月 = '2021-03-01'
    
[/code]

このクエリで出力した店舗名をサブクエリとして活用していきたいのですが、何かうまく出力できる方法ありませんでしょうか。


CC BY-SA 4.0
2021-06-25T04:40:44.043
77778
2021-07-09T04:01:43.820
2021-06-25T05:01:46.127
3060
23420
question
sql
SQL X月とY月それぞれにレコードがあるもののみを抽出したい場合


「店舗名」でグループ化して、マッチした「月」の個数で判断するなど。

[code]

    select `店舗名` from `売上Table` where `月` in ('2021-01-01', '2021-03-01') group by `店舗名` having count(distinct `月`) = 2
    
[/code]

* * *

_この投稿は @user39889 さんのコメント の内容を元に コミュニティwiki として投稿しました。_


CC BY-SA 4.0
2021-07-09T04:01:43.820
78066
2021-07-09T04:01:43.820
3060
77778
answer