2

2 つのテーブルがあるとします (図を参照)。1 つには日付があり、もう 1 つには最初の日付のいくつかのカウントがあります。

これらのテーブルを結合する必要があるため、テーブル Dates の各日付について、最新のカウント (その日付まで) を取得します。たとえば、[Dates].[date]=3 の場合、[Counts].[Count] がないため、[date]=1 のカウントを取得する必要があります。

SQLでこれを行う最良の方法は何ですか?

私はあなたが私を理解できることを願っています:)

ありがとう!!

ここに画像の説明を入力

4

2 に答える 2

5

これを行うために使用できますLEFT JOIN。新しい一致する日付が存在しないことを確認するために、null チェックを伴う追加の左結合を使用します。

SELECT d.`date`, c.`count`
FROM dates d
LEFT JOIN counts c  ON d.`date` >= c.`date`
LEFT JOIN counts c2 ON d.`date` >= c2.`date` AND c.`date`<c2.`date`
WHERE c2.`date` IS NULL;

でテストする SQLfiddle

于 2013-08-16T13:58:08.063 に答える