正しいSQLステートメントを理解するのに助けが必要です。
次の構造のテーブルがある場合:id、product_id、units、timestamp
1日あたりのユニット全体を含むリストは必要ありません。製品には、1日あたり最大1つのレコードがあります。だから私の最初の試みは:
SELECT
DATE(timestamp) as day, SUM(units) as overall_units
FROM
tbl
GROUP BY
DATE(timestamp);
通常、これでうまくいくはずです。しかし、製品の記録がない日もあります。それにもかかわらず、ユニットはまだ倉庫にあるので、計算に含める必要があります。
例えば:
3つの製品があります。車、ペン、ホイール。2012-10-20の記録:
車=>5ペン=>20ホイール=>4
2012-10-21車の記録=>5輪=>6
私のクエリでは、次の結果が得られます。
2012-10-20 => 29
2012-10-21 => 11
ただし、その日の製品のレコードがない場合は、過去に最も近いこの製品のレコードを使用する必要があります。
したがって、次のようになります。
2012-10-21 => 31
私のニーズをご理解いただければ幸いです。