我有两列,名称和日期
Name Date
John 2/21/2014
Joe 2/21/2014
Sue 2/22/2014
Joe 2/22/2014
Steve 2/23/2014
John 2/23/2014
我需要一个声明,选择每个没有某个人的日期。
所以,例如,我需要一个没有John匹配行的日期列表,我会得到2014年2月22日,因为只有Sue和Joe在该日期有记录。
答案 0 :(得分:2)
您可以使用NOT IN
:
SELECT DISTINCT Date
FROM Table
WHERE Date NOT IN
(
SELECT Date FROM Table where Name = 'John'
)
答案 1 :(得分:1)
SELECT DISTINCT t.Date
FROM MyTable t
WHERE NOT EXISTS (
SELECT 1
FROM MyTable t2
WHERE t2.Name = 'John'
AND t2.Date = t.Date
)
答案 2 :(得分:1)
您可以使用GROUP BY
和HAVING
:
SELECT Date
FROM Table1
GROUP BY Date
HAVING MAX(CASE WHEN Name = 'John' THEN 1 END) IS NULL
可能需要针对Access调整语法。
SQL Server演示:SQL Fiddle
答案 3 :(得分:0)
试试这个,也许有帮助! ;)
SELECT Date
FROM table
WHERE 'John' NOT IN Name