access的表结构和ms  sql中表一致,但access很少用,不太熟悉函数,请帮忙改写一下select 姓名,sum(datediff(n,开始时间,case when 结束时间='' then '2011-08-31 23:59:59' else 结束时间 end))/60 as 总时间,sum(cast(特殊 as int)) as 特殊时间,count(单据编号) as 次数 from logs where b_id like '201108%' group by 姓名
在ms sql里顺利执行, access中不行了

解决方案 »

  1.   

    try:
    select 姓名,sum(datediff(n,开始时间,iif(结束时间='','2011-08-31 23:59:59',结束时间))/60 as 总时间,sum(cast(特殊 as int)) as 特殊时间,count(单据编号) as 次数 from logs where b_id like '201108%' group by 姓名
      

  2.   

    楼主要去看看ACCESS等价的语法,不要直接套用SQL的,ACCESS里貌似是IFF,具体的查下吧!
      

  3.   

    ACCESS里面有没有datediff函数?
      

  4.   

    我就知道case when 相当于iif
      

  5.   

    select 姓名,sum(datediff(n,开始时间,iif(结束时间='','2011-08-31 23:59:59',结束时间))/60 as 总时间,sum(cast(特殊 as int)) as 特殊时间,count(单据编号) as 次数 from logs where b_id like '201108%' group by 姓名