Sql Can';Don’不要丢弃重复的

Sql Can';Don’不要丢弃重复的,sql,sql-server-2008,tsql,duplicates,Sql,Sql Server 2008,Tsql,Duplicates,我有我的疑问: SELECT t.nCitiesId ,t.tmDate ,t.strShortWeekdayName ,t.nIsHoliday FROM #temp AS t WHERE 1 = 1 AND t.nCitiesId = 104 AND t.tmDate = '2014-06-08' GROUP BY t.tmDate, t.nCitiesId, t.strShortWeekdayName, t.nIsHoliday 这将

我有我的疑问:

SELECT   t.nCitiesId
    ,t.tmDate
    ,t.strShortWeekdayName
    ,t.nIsHoliday
FROM    #temp AS t
WHERE   1 = 1
AND     t.nCitiesId = 104
AND     t.tmDate = '2014-06-08'
GROUP BY t.tmDate, t.nCitiesId, t.strShortWeekdayName, t.nIsHoliday
这将产生以下结果:

nCitiesId         tmDate              strShortWeekdayName   nIsHoliday
104       2014-06-08 00:00:00.000            SUN                0
104       2014-06-08 00:00:00.000            SUN                1
我的问题是,当ncitiseid和tmDate相等时,我不希望nIsHoliday=0的那个消失了


我如何才能使这一切顺利进行?

尝试使用having子句:

SELECT   t.nCitiesId
    ,t.tmDate
    ,t.strShortWeekdayName
    ,t.nIsHoliday
FROM    #temp AS t
WHERE   1 = 1
AND     t.nCitiesId = 104
AND     t.tmDate = '2014-06-08'
GROUP BY t.tmDate, t.nCitiesId, t.strShortWeekdayName, t.nIsHoliday
having max(t.nIsHoliday)

选择具有最高值的t.nIsHoliday:

SELECT t.nCitiesId
      ,t.tmDate
      ,t.strShortWeekdayName
      ,max(t.nIsHoliday)
FROM   #temp AS t
WHERE  t.nCitiesId = 104
AND    t.tmDate = '2014-06-08'
GROUP BY t.nCitiesId, t.tmDate, t.strShortWeekdayName

如果第三行的
nIsHoliday
=0,则希望该列的最终值为0或1?只要tmDate和nCitiesId相等,我只希望有一行。总是。nIsHoliday=1时