Account
=======
int AccountId PK
Order
=====
int OrderId PK
int AccountId FK
DateTime Date
int Status
アカウントごとに、ステータスが1(成功)の最新の注文を知りたい。そうでない場合は、ステータスが0(失敗)の最新の注文を知りたい。日付は一意ではありません。
私はこれをこのようなビューで相関サブクエリで動作させています...
SELECT
a.AccountId,
(SELECT TOP 1
o.orderId
FROM
tbl_order o
WHERE
o.Accountid = a.AccountId
AND
o.Status IN (0, 1)
ORDER BY
o.Status DESC, o.Date DESC
) AS OrderId
FROM
tbl_account a
...しかし、その遅い。
もっと良い方法はありますか?