2017-03-31 4 views
0

年の週を決定するために使用する日付表があります(現在の年は暦年を基準としていません)。私はテーブル値の関数で使用するテーブルを作成する結合クエリを持っています。私は、ユニオンクエリでテーブルを作成することができますが、実際のデータを持つ40週のみを生成します。データが存在するかどうかにかかわらず、週を表示する必要があります。
私は週テーブルに外部結合を残そうとしましたが、それに関連付けられたデータがある週だけレコードを取得します。値を指定しなくてもテーブルのすべての行に参加するSQL Server

left outer join [dbo].[LOOKUP_WEEK_NUMBER] w on 
(p.[Program_Year_ID] = w.[Program_Year_Nbr]) and 
(p.[Installation_Complete_Date] between w.[Week_Start] and w.[Week_End]) 

LOOKUP_WEEK_NUMBERテーブルには、すべての年の数週間、各週の開始日と終了日を持っています。 pテーブルにはプロジェクトデータが含まれています。私がやっていることは、報告目的のために数週間でプロジェクトをバケツにすることです。
誰かが私を正しい方向に向けることができますか?前もって感謝します。

+0

サンプルテーブルのデータと予想される結果(すべてフォーマット済みのテキスト)を追加します。 – jarlh

+0

代わりに 'RIGHT JOIN'を使ってみてください。 – Siyual

答えて

0

ルックアップテーブルの代わりにルックアップテーブルからleft joinに変更するか、ルックアップテーブルにright joinを使用してください。

from [dbo].[LOOKUP_WEEK_NUMBER] w 
    left join ... p 
    on (p.[Program_Year_ID] = w.[Program_Year_Nbr]) 
    and (p.[Installation_Complete_Date] between w.[Week_Start] and w.[Week_End]) 
関連する問題