2011-03-21 161 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()是SQL Server特定,Access有Now()代替。

的DateDiff的()函數也存在於訪問,但是對於間隔的參數是不同的:

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

是等效它與此DATEDIFF (Day,TransactionDate,GetDate())= 0?謝謝 – 2011-03-21 23:22:26

+1

是的! 「d」和T-SQL中的Day一樣,而Now()等同於GetDate()。 – 2011-03-21 23:40:38

1

等效的:

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

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

問候