解决方案 »

  1.   

    没看你其他的地方,你试着在WITH前面加个分号 ;
      

  2.   

    在with 前面加上分號;  試一下是否OK。
    另查詢的時候怎麼可以group by A呢?
    A不是字段。
      

  3.   

    ;WITH A AS(SELECT * FROM  logtabl WHERE logid in(SELECT logid FROM logtable WHERE logtime BETWEEN '2015-3-1 11:00:00' AND '2015-3-1 13:00:00' GROUP BY Logid HAVING COUNT(*)=4) AND logtime BETWEEN '2015-3-1 11:00:00' AND '2015-3-1 13:00:00' ) SELECT * FROM A WHERE logid in(select logid FROM A  HAVING DATEDIFF(MINUTE,MIN(logtime),MAX(logtime))>40)
    改成这样子了。提示 : ';' 附近有语法错误。
      

  4.   

    ;with a as (select logid,MIN(logtime) time_min,MAX(logtime) time_max from logtable 
         where logtime between '2015-3-1 11:00:00' AND '2015-3-1 13:00:00'
           group by logid having COUNT(*)=4)
        select logid from a where DATEDIFF(minute,time_min,time_max)>40