0

Access DBでクエリを実行しようとしています。SQLクエリに慣れていますが、これは同じように機能していないようです。これが私の質問です:

OleDbCommand command = new OleDbCommand();
command.Connection = connect;
command.CommandText = "SELECT RecordID, TimeStamp, EmployeeName, AreaDescription       FROM LoginRecords r, Employees e, Areas a WHERE((e.EmployeeID = r.EmployeeID) && (a.AreaID =r.AreaID) && (TimeStamp > startDate AND < endDate)) ORDER BY TimeStamp;"

これを実行することはできないようですが、技術的にはSQLの観点からはこれは良いクエリになるはずです。テーブルはLoginRecords、Employees、Areasです。それが役に立ったら、テーブルをロードできます。これがAccessで機能しない理由についてのフィードバックに感謝します。また、startDateとendDateは、ユーザー入力ボックスからの変数です。

4

1 に答える 1

1

これを試してみてください

これはSQL-92

SELECT      RecordID, 
            TimeStamp, 
            EmployeeName, 
            AreaDescription       
FROM        LoginRecords r
                INNER JOIN Employees e
                    ON e.EmployeeID = r.EmployeeID
                INNER JOIN Areas a 
                    ON a.AreaID = r.AreaID
WHERE   TimeStamp > startDate AND
        TimeStamp < endDate
ORDER BY TimeStamp;

古いスタイルは別として)正しく処理されないと行く傾向があるので、SQL-92フォーマットではなくフォーマットを使用してください。SQL-89SQL-89CROSS JOIN

そしてこれはSQL-89

SELECT      RecordID, 
            TimeStamp, 
            EmployeeName, 
            AreaDescription       
FROM        LoginRecords r, Employees e, Areas a
WHERE   (e.EmployeeID = r.EmployeeID) AND
        (a.AreaID = r.AreaID) AND
        (TimeStamp > @startDate AND
         TimeStamp < @endDate)
ORDER BY TimeStamp;

MSACCESS:内部結合外部結合(左と右)

于 2012-09-04T00:35:39.030 に答える