MySQLを使用しています。
以下のテーブルで、
提出日または入力日が指定期間内(2019/04/01~2020/03/31)のデータを持たない
会社コード、社員コードを抽出したいです。
テーブル T1
|会社コード|社員番号|連番|提出日|入力日|
|:--|:--:|--:|
AAA|0001|1|2018-03-20|2018-03-30
AAA|0001|2|2019-04-10|NULL
AAA|0002|1|2019-03-10|NULL
AAA|0003|1|2019-04-10|2019-04-15
BBB|0004|1|2019-03-10|NULL
BBB|0004|2|NULL|2018-03-30
上記の例では
会社コード | 社員番号 |
---|---|
AAA | 0002 |
BBB | 0004 |
の取得を実現したいです。
次のようなSQLを考えましたが期待する結果が取れません。
SQL
1select 会社コード,社員番号 from T1 2 where 3 ((提出日 >= '2019-04-01' and 提出日 < '2020-04-01') or 4 (入力日 >= '2019-04-01' and 入力日 < '2020-04-01')) 5 group by 会社コード,社員番号 having count(*) =0
追記です。
社員番号はAAA社にもBBB社にも同じ番号のレコードが存在し、会社コード+社員番号でユニークです。
以下create table文となります。
SQL
1CREATE TABLE `T1` ( 2 `会社コード` varchar(3) NOT NULL, 3 `社員番号` varchar(5) NOT NULL, 4 `連番` smallint(2) NOT NULL, 5 `提出日` date DEFAULT NULL, 6 `入力日` date DEFAULT NULL, 7 PRIMARY KEY (`会社コード`,`社員番号`,`連番`) 8) ENGINE=MyISAM DEFAULT CHARSET=utf8;
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー