0

私はこのような2つのテーブルを持っています

1.HR_Personnel

+-----+---------------+--------+
| ID  | NIP           | Name   |
+---------------------+--------+
| 1   | 050803075200  | Teguh  | 
| 2   | 050803075201  | Supomo | 
+-----+---------------+--------+

2.TA_Record_Info

+-----+-----+---------+-----------------------+
| NIP | NIP | Nama    | Date_Time             |
+-----+-----+---------+-----------------------+
| 2   | 2   | Supomo  | 2013-02-20 07:45:57   | 
| 2   | 2   | Supomo  | 2013-02-20 17:24:13   | 
| 1   | 1   | Supomo  | 2013-02-20 18:18:07   | 
| 2   | 2   | Supomo  | 2013-02-21 07:53:40   | 
| 2   | 2   | Teguh   | 2013-02-21 20:31:02   | 
| 1   | 1   | Teguh   | 2013-02-21 17:31:57   | 
+-----+-----+---------+-----------------------+

Date_Time文字列形式です。

そして、次の表のようにしたいと思います。

+----------------+---------+-------------+-------------+-------------+
| NIP            | Nama    | Date        | In          | Out         |
+----------------+---------+-------------+-------------+-------------+
| 050803075200   | Teguh   | 2013-02-21  |             | 18:18:07    |
| 050803075200   | Teguh   | 2013-02-20  |             | 20:31:02    | 
| 050803075201   | Supomo  | 2013-02-20  | 07:45:57    | 17:24:13    | 
| 050803075201   | Supomo  | 2013-02-21  | 07:53:40    | 17:31:57    |
+----------------+---------+-------------+-------------+-------------+

前の質問DateTime String to Date, In Time and Out Timeの回答に基づいて、MySQL Query を試してみました。成功です。これはクエリコードです:

SELECT p.Per_Code as NIP,
   p.Per_Name as Nama,
   DATE_FORMAT(a.Date_Time, '%Y-%m-%d') as date,
   Case Min(a.Date_Time)
    When Max(a.Date_Time) 
     Then '' 
     Else DATE_FORMAT(a.Date_Time, '%H:%i:%s') 
   End as InTime,
   DATE_FORMAT(max(a.Date_Time), '%H:%i:%s') as OutTime
FROM  HR_Personnel as p
RIGHT JOIN  TA_Record_Info a
ON p.ID=a.Per_ID
Group By NIP,
     Nama,
     DATE_FORMAT(Date_Time, '%Y-%m-%d')

ここでMYSQLクエリテストを見ることができます

そして、ms Access で試してみましたが、まだ機能していません。これはクエリ コードです。

SELECT p.Per_Code AS NIP,
   p.Per_Name AS Nama,
   Format (a.Date_Time, "yyyy-mm-dd") as date,
   IIF(
       (Min(a.Date_Time) = Max(a.Date_Time)) ,
        '',
        Format (a.Date_Time, "hh/mm/ss")
   )as InTime,
   Format (Max(a.Date_Time), "hh/mm/ss") AS OutTime 
FROM HR_Personnel AS p 
RIGHT JOIN TA_Record_Info a 
ON p.ID=a.Per_ID 
GROUP BY p.Per_Code,
         p.Per_Name,
         Format (a.Date_Time, "yyyy-mm-dd")

私は PDO:Querry でそれを試しましたが、それでもエラーメッセージが表示されます:

致命的なエラー: メンバー関数 fetch() の呼び出し

ms-access でのテスト方法がわかりません。私はただ知っていPHP and MySqlます。ms-access私の情報システムはms-accessデータベースのみを持つ指紋に接続しているため、データベースを使用しています。
この問題を解決するにはどうすればよいですか?

4

1 に答える 1