【发布时间】:2015-05-23 13:35:29
【问题描述】:
我正在尝试计算每个工作日表中不同的用户 ID 数(例如,工作日 1 的 545 个用户 ID = 星期一,工作日 2 的 120 个用户 ID = 星期二等)。我在 Access Visual Basic 中执行此操作,但语法应该对 SQL 是通用的。这是我的 VB 代码:
sSQL = " SELECT Weekday(" & tablename & ".[DATE]) AS WEEKDAY, Count(DISTINCT " & tablename & ".[UserID]) AS User_COUNT"
sSQL = sSQL & " FROM " & tablename
sSQL = sSQL & " GROUP BY Weekday(" & tablename & ".[DATE])"
qdf.SQL = sSQL
简单的 SQL 语法应该如下所示(根据 cmets & test 编辑):
SELECT Weekday(tbl.[Date]) AS WEEKDAY, Count(DISTINCT tbl.[UserID]) AS User_COUNT
FROM tbl
GROUP BY Weekday(tbl.[Date])
..而 [Date] 是 tbl 中格式为 Datetime 的字段,而 [UserID] 是格式为 Long(有重复项)的字段。
当我尝试运行命令时,它告诉我“查询语法中缺少运算符..” 这是我的 VB 代码的问题还是 SQL 语法错误?
【问题讨论】:
-
我认为您用作列名的
Date与access数据库的preserve关键字有冲突。请尝试将Date列更改为其他名称? -
不应该是
Weekday(tableName.[Date])而不是Weekday(Date)?日期是保留字,必须用[]括号括起来。 -
嗨,阿莫,嗨 Maciej!我都试过了,它仍然给我同样的错误..
标签: sql database ms-access syntax vba