それぞれからいくつかの情報を抽出するクエリで2つのテーブルを結合したいのですが、2番目のテーブルにはTOP1が必要です。
これは私の人々のリストを取得します
SELECT [Clock no], [Card id], [Current pay cat], [Pay category]
FROM Employees EMP
WHERE [Clocked in flag] = 'Y'
次に、そのテーブル内の各ユーザーについて、このクエリに参加します。
SELECT TOP 1 [Start time], Dated FROM [Work records] WR
WHERE WR.[Clock no] = XXXXXXXXX <- Clock no from first query
AND WR.Dated <= '2013-01-07' AND WR.[Open flag] = 'Y'
ORDER BY WR.[Dated] DESC, WR.[Start time] DESC
私がこれまでに持っているのはこのようなものですが、ORDERBy句を追加するとすぐに機能するようには見えません。
SELECT EMP.[Clock no], [Card id], [Current pay cat], [Pay category], WRTOP.[Start time], WRTOP.[Dated]
FROM Employees EMP
LEFT JOIN (
SELECT TOP 1 [Clock no], [Start time], Dated FROM [Work records] WR
WHERE WR.Dated <= '2013-01-07' AND WR.[Open flag] = 'Y'
ORDER BY WR.[Dated] DESC, WR.[Start time] DESC
) WRTOP
ON (EMP.[Clock no] = WRTOP.[Clock no])
WHERE EMP.[Clocked in flag] = 'Y'