查询从sql server到ms访问的转换

时间:2012-10-20 15:32:53

标签: sql sql-server ms-access

在我的项目中,我必须将我的数据库从SQL Server 2005更改为MS access.But一些查询无法正常使用MS Access.can任何人请将以下查询从sql转换为MS Access

SELECT l.id,
        REPLACE(SUBSTRING(CONVERT(VARCHAR(20), l.app_date, 13), 1, 11), ' ', '/') AS app_date,
        l.reason,
        REPLACE(SUBSTRING(CONVERT(VARCHAR(20), l.fromdate, 13), 1, 11), ' ', '/') AS fromdate,
        REPLACE(SUBSTRING(CONVERT(VARCHAR(20), l.todate, 13), 1, 11), ' ', '/') AS todate,
        lt.LeaveDesc,
        l.noofdays,
        e.Abbv_name,
        e1.Abbv_name AS Expr1,
        l.Typeofleave AS Leave_ID
FROM leave AS l
INNER JOIN LeaveTypes AS lt
        ON l.Typeofleave = lt.TypeofLeave
LEFT JOIN Employee AS e1
        ON l.HRby = e1.Emp_id
LEFT JOIN Employee AS e
        ON l.approveby = e.Emp_id
WHERE l.submitby = 2
        AND submit = 'Y'
        AND approved IS NULL

在上面的查询中,leave是我的数据库表。提前感谢...

1 个答案:

答案 0 :(得分:1)

当您加入2个以上的数据源时,Access数据库引擎需要FROM子句中的括号。在查询设计器的“设计视图”中构建联接。它将添加引擎所需的括号。我认为这个修订后的FROM条款可能有效:

FROM ((leave AS l
INNER JOIN LeaveTypes AS lt
        ON l.Typeofleave = lt.TypeofLeave)
LEFT JOIN Employee AS e1
        ON l.HRby = e1.Emp_id)
LEFT JOIN Employee AS e
        ON l.approveby = e.Emp_id

如果app_datefromdatetodate是日期/时间数据类型,则可以使用Format()表达式将日期值作为格式化字符串返回。

SELECT Format(app_date, 'dd/mon/yyyy hh:nn:ss')