紳士淑女の皆様、
ビューからデータを取得するクエリを作成する必要がありますが、その方法がわかりません。問題は、実際にはキーがなく、取得する必要がある行を制御する 2 つのフィールドがあることです。
ビューは次のようになります。
Category columna columnb uploaddate
-----------------------------------------------------
a value value 1/30/2013 04:04:04:000
a value value 1/29/2013 04:04:04:000
b value value 1/28/2013 01:23:04:000
b value value 1/30/2013 04:04:04:000
b value value 1/30/2013 04:04:04:000
c value value 1/30/2013 01:01:01:000
c value value 1/30/2013 01:01:01:000
取得する必要があるのは、一意の各カテゴリと最新のすべての行ですuploaddate
。したがって、上記の例では、カテゴリ a の 1 行を取得し、最新のuploaddate
. カテゴリ b には、2013 年 1 月 30 日の日付を持つ 2 つの行があります。カテゴリ c にも 2 つの行があります。
また、時間ではなく、アップロードの日付を比較する必要があります。読み込みには数秒かかることがあります。私は最大日付を使用しようとしていましたが、秒までしか取得できませんでした。
どんなガイダンス/考えも素晴らしいでしょう。
ありがとう!
編集:
これが私がこれまでにまとめたもので、近いと思いますが、まだ機能していません。これが最も効率的な方法であるとは思えません。
select
*
from
VIEW c
INNER JOIN
(
SELECT
Category,
MAX(CONVERT(DateTime, Convert(VarChar, UploadDate, 101))) as maxuploaddate
FROM
View
GROUP BY
Category,
UploadDate
) temp ON temp.Category = c.Category AND CONVERT(VarChar, UploadDate, 101) = temp.maxuploaddate
カテゴリとアップロード日のすべての組み合わせをまだ取得しているため、問題はネストされた選択されたステートメントにあります。最新の組み合わせを取得するだけで、Category と UploadDate を区別する方法はありますか?
再度、感謝します