Sql server 如何从表中隐藏日期和id

Sql server 如何从表中隐藏日期和id,sql-server,Sql Server,使用SQLServer2005 我想在table1中隐藏日期,其中table1.id=table2.id和table1.date=table2.date 表1 ID Date 001 01-01-2009 001 02-02-2009 001 03-01-2009 001 04-01-2009 002 01-01-2009 002 02-02-2009 002 03-01-2009 表2 ID Date Holiday 001 01-02-2009 0 001 02-02-2009 1

使用SQLServer2005

我想在table1中隐藏日期,其中table1.id=table2.id和table1.date=table2.date

表1

ID Date

001 01-01-2009
001 02-02-2009
001 03-01-2009
001 04-01-2009
002 01-01-2009
002 02-02-2009
002 03-01-2009

表2

ID Date Holiday

001 01-02-2009 0
001 02-02-2009 1
001 03-01-2009 0
001 04-01-2009 0
002 01-01-2009 1
002 02-02-2009 1
002 03-01-2009 0

质疑

SELECT ID, Date  
FROM table 
WHERE date NOT IN (SELECT date FROM table2 WHERE holiday = 1) 
  AND id NOT IN (SELECT id FROM table2 WHERE holiday = 1)
上面的查询没有显示任何内容

如何对此条件进行查询


需要SQL查询帮助

您可以执行以下操作:

SELECT ID,Date From Table1
WHERE convert(VARCHAR,date)+'~'+convert(VARCHAR,id) NOT IN 
    (SELECT convert(VARCHAR,date)+'~'+convert(VARCHAR,id) FROM table2
     WHERE Holiday=1)

你的id不是很独特,基本上隐藏了一切

例如

表1

001 03-01-2009-这不是假日

表2

001 02-02-2009 1-这是一个假日-但id为“001”-与表1中的记录相同,不是假日

您确定要根据ID进行筛选吗?当然“仅按日期”将起作用:

SELECT
    ID,
    Date
FROM
    table 
WHERE
 date not in (select date from table2 where holiday = 1)