2011-03-21 6 views
2

나는이 쿼리를 사용하고 있습니다 :MS Access 쿼리 문제가 있습니까?

SELECT D.Generic, D.Ww, D.Dd, D.Plan, c.TotalScan, D.Plan - c.TotalScan AS Balance 
    FROM TableA D 
     LEFT JOIN (
        SELECT COUNT(a.Specific) AS TotalScan, 
         b.Generic, a.Dd,a.Ww 
        FROM TableB a 
         INNER JOIN TableC b 
          ON a.Specific = b.Specific 
        GROUP 
         BY b.Generic,a.Dd,a.Ww 
        WHERE DATEDIFF(DAY, a.TransactionDate, GETDATE()) = 0 
       ) c 
      ON c.Generic = D.Generic 
      AND D.Ww = c.Ww 
      AND c.Dd = D.Dd 
WHERE DATEDIFF(DAY, c.TransactionDate, GETDATE()) = 0; 

내 SQLSERVER 데이터베이스에 삽입 모든 레코드를 필터링 할 수 있습니다.

이제 어떻게 ms 액세스 할 수 있습니까?

1. DATEDIFF(Day, TransactionDate, GetDate()) = 0 -- Not Work on MS Access(Which Filter all Records inserted in current Date) 
2. Cant display TotalScan from subquery 

예 출력 날짜 :

TransactionDate 
3/21/2011 7:26:24 AM 
3/21/2011 7:26:24 AM 
3/22/2011 7:26:24 AM -- 
3/22/2011 7:26:28 AM -- 
3/22/2011 7:26:30 AM -- 
3/22/2011 7:26:32 AM -- 
3/22/2011 7:26:35 AM -- 

내 일 경우 오늘 2011년 3월 22일 5 레코드가 표시 될 것이다. 감사합니다

답변

4

GetDate()에서

덕분에 액세스 대신 Now()을 가지고, SQL 서버에만 적용됩니다.

참조 DateDiff() 함수는 통로에 존재하지만 간격 파라미터가 다릅니다

DateDiff("d", TransactionDate, Now()) 
+0

이 DATEDIFF 그것에 동일 (일, TransactionDate, GetDate()) = 0? 감사합니다 –

+1

예! "d"는 T-SQL에서 Day와 같고 Now()는 GetDate()와 같습니다. –

1

당량 :

DATEDIFF(DAY, c.TransactionDate, GETDATE()) = 0 

DATEDIFF("d", c.TransactionDate, Now()) = 0 

안부