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时