2017-10-10 6 views
0

PostgreSQLのgenerate_series()関数のsqliteに複製が必要です。CTEを使ってSqliteのフィールドから日付を生成

Date  Period 
---------------- 
1-1-2000 60 
1-2-2000 40 
1-3-2000 50 

だから、最初の行から、私は2000年1月1日から始まる60日を構築する必要があります:私は、私は2つのフィールドに基づいて、将来の支払いを計算する必要がテーブルを持っています。

私は
How to generate all dates between two dates

を読み、sqliteのは、CTEを持っていることを発見!しかし、どのようにクエリを構築するのか分からない。私が見つけたサンプルには値がハードコードされています。

+0

1つの入力行に対してのみクエリの出力が望ましいですか?もしそうなら、クエリはその行をどのように識別すべきですか? –

答えて

0

最初に、提供された日付形式を使用しないでください。サポートされているものを使用してください(チェックSQLite Date and Time Functions)。

CREATE TABLE source_table (Date, Period); 
INSERT INTO source_table VALUES("2000-01-01",60),("2000-02-01",40),("2000-03-01",50); 

WITH dates AS (
    SELECT * FROM source_table 
    UNION -- use UNION ALL if repeated dates are desired 
    SELECT DATE(JULIANDAY(Date)+1), Period-1 FROM dates WHERE Period>0 
) SELECT Date FROM dates ORDER BY Date; 
関連する問題