私は、in withと forのフラグを設定して、時間と時間外に保存したattan
、出席の
名前のテーブルと列の名前を持つ sql クエリを持っています。S_TIME
I
O
今、私は旗を使って時間に間に合うようにしようとしています。クエリを作成しましたが、このクエリの結果が間違った意味を持っています。
これが私のクエリです
SELECT X.AC_NO, X.IN_TIME, Y.OUT_TIME, X.S_DTE, X.CHK_IN, Y.CHK_OUT
FROM (SELECT A.AC_NO, A.S_TIME IN_TIME, A.AC_CHECKTYPE CHK_IN, A.S_DTE
FROM ATTN A
WHERE A.AC_CHECKTYPE = 'I' AND A.S_DTE = :P_DTE) X,
(SELECT B.AC_NO, B.S_TIME OUT_TIME, B.AC_CHECKTYPE CHK_OUT
FROM ATTN B
WHERE B.AC_CHECKTYPE = 'O' AND B.S_DTE = :P_DTE) Y
WHERE X.AC_NO = Y.AC_NO(+)
このクエリを通じて、私は常に入っている従業員のレコード数を取得し、時間外で 2 つの数のレコードしか取得しません。
一方、表には 234 人の従業員が在籍しており、256 人が退職していますが、結果はデータと一致しません。
クエリに問題がある場合は、誰か助けてください。