1.原始数据
date        Employee Name       TimeIn           SUM
2009-5-1      AA                 12:10:00        10
2009-5-1      AA                 13:00:00        20  
2008-8-2      BB                 16:00:00        10
2008-8-2      BB                 15:00:00         3
2009-6-1      DD                 13:00:00         9
2009-6-1      DD                 15:20:00         12
2009-5-6      CC                 10:00:00         14
------------------------------------------
2.经过下面sql语句后结果
select  Date, [Employee Name] from EmployeeData where date>'2009-05-09' GROUP BY  Date,[Employee Name]  having  count(TimeIn)=2 order by Date,[Employee Name]
date        Employee Name 
2009-5-1      AA 
2008-8-2      BB 
2009-6-1      DD 
-------------------------------------------
3.现在我想更新SUN的数值,所有加1,条件是步骤2所得结果,依次date+ Employee Name .
update table set sum where date=2009-5-1 and [Employee Name]=AA 
红色区域动态的  
 

解决方案 »

  1.   

    with cte as (
    select  Date, [Employee Name] from EmployeeData where date>'2009-05-09' GROUP BY  Date,[Employee Name]  having  count(TimeIn)=2 )
    update cte set sum=sum+1 where date=2009-5-1 and [Employee Name]=AA
      

  2.   

    UPDATE [TABLE] SET sum = sum + 1 WHERE DATE IN (select  Date from EmployeeData where date>'2009-05-09' GROUP BY  Date,[Employee Name]  having  count(TimeIn)=2 order by Date,[Employee Name])
      

  3.   

    我需要满足条件的date+Employee Name 才能得到符合条件的数据,请问该怎么并列条件
      

  4.   

    原始数据规则是这样,时间+姓名可以确定一条或二条记录,现在我想先提取时间+姓名是两条记录的数据count(TimeIn)=2,然后根据上述得到的时间和姓名作为并列的条件更新另外一个字段.
      

  5.   

    select 时间,姓名 
    from ta 
    group by 时间,姓名 
    having count(1) = 2