我正在尝试使用LEFT JOIN
右表上的条件,但这样做会遇到很多问题。
我有两张桌子:
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
但没有成功的原因。