LEFT JOIN
右の表の条件で使用しようとしていますが、多くの問題が発生しています。
私は2つのテーブルを持っています:
projects{project_id,start_date}
projectForeCast{project_id,year_number,month_number,hours}
先週開かれたすべてのプロジェクトと、先月記録された時間を取得しようとしています。
SELECT dbo.Project.PROJECT_ID, dbo.ProjectForeCast.HOURS AS F0
FROM dbo.Project LEFT JOIN dbo.ProjectForeCast ON dbo.Project.PROJECT_ID = dbo.ProjectForeCast.PROJECT_ID
WHERE (dbo.ProjectForeCast.YEAR_NUMBER = DATEPART(YYYY, DATEADD(MM, 0, DATEADD(WK, - 1, GETDATE())))) AND
(dbo.ProjectForeCast.MONTH_NUMBER = DATEPART(MM, DATEADD(MM, 0, DATEADD(WK, - 1, GETDATE())))) AND
(DATEPART(WK,dbo.Project.START_DATE) = DATEPART(WK, DATEADD(WK, - 1, GETDATE())))AND
(DATEPART(YYYY,dbo.Project.START_DATE) = DATEPART(YYYY, DATEADD(WK, - 1, GETDATE())))
projectForeCast
うまく機能していますが、プロジェクトに最後の記録がない場合、プロジェクトmonth_number
をまったく取得できません。F0
この場合、列に空のセルまたはnullを取得したい。これが私が試した理由ですLEFT JOIN
が、うまくいきませんでした。