【问题标题】:MS Access Query problem?MS Access 查询问题?
【发布时间】:2011-03-21 09:57:42
【问题描述】:

我正在使用这个查询:

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 条记录。

在此致谢

【问题讨论】:

    标签: sql ms-access subquery


    【解决方案1】:

    GetDate() 是特定于 SQL Server 的,Access 使用的是 Now()

    DateDiff()函数在Access中也存在,只是间隔的参数不同:

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

    【讨论】:

    • 它是否等同于这个 DATEDIFF(Day, TransactionDate, GetDate()) = 0 ?谢谢
    • 是的! "d" 和 T-SQL 中的 Day 一样,Now() 等价于 GetDate()。
    【解决方案2】:

    等价于:

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

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      相关资源
      最近更新 更多