0

以下のように2つの列を持つ1つのSQLテーブルがあります

Column1:ProductionDate-DateTime-NOT NULL

列2:数量-整数-NULLではありません

現在、テーブルには2つのレコードがあります

2012年1月1日、5

1-3-2012、7

日付範囲StartDateを1-1-2012、EndDateを1-15-2012とすると、結果の出力は次のようになります。

2012年1月1日5

1-2-2012 0

1-3-2012 7

1-4-2012 0

2012年1月5日0

2012年1月6日0

2012年1月15日0

Means Queryは、指定された範囲のすべての日付を数量とともに返す必要があります。テーブルにエントリがない場合は、数量として0を返します。

どうやってするの?クエリで提案してください

4

1 に答える 1

0

これは、使用できるものに関する非常に楽観的なドラフトの 1 つです ( source - here )

declare @startDate datetime;
declare @endDate datetime;

set @startDate = '2012-02-09';
set @endDate = '2012-02-15';

WITH span AS (
  SELECT @startDate AS dt
  UNION ALL
  SELECT DATEADD(dd, 1, dt)
    FROM span s
   WHERE DATEADD(dd, 1, dt) <= @endDate)

select s.dt, t.Quantity from span s
join table t
on s.dt = t.ProductionDate 
于 2012-06-15T14:47:51.903 に答える