0

私のプロジェクトでは、データベースを SQL Server 2005 から MS Access に変更する必要があります。しかし、一部のクエリは MS Access で正しく動作しません。次のクエリを 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 は、私のデータベースのテーブルです。よろしくお願いします...

4

1 に答える 1

1

FROM3つ以上のデータソースを結合する場合、Accessdbエンジンでは句に括弧が必要です。クエリデザイナのデザインビューで結合を作成します。エンジンが要求する括弧を追加します。私の頭から離れて、私はこの改訂された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

、、、およびが日付/時刻データ型の場合、Format()式を使用app_date、日付値をフォーマットされた文字列として返すことができます。fromdatetodate

SELECT Format(app_date, 'dd/mon/yyyy hh:nn:ss')
于 2012-10-20T15:57:30.343 に答える