私はクエリに取り組んでいます:
SELECT D.PointPerson AS Person, R.[Name] AS Project, ISNULL(P.[Name]+' - '+P.[Description], 'KanBan') AS Sprint, S.[Number] AS Story, T.[Name] AS Task,
sum(CASE WHEN DatePart(dw, D.ActivityDate) = 1 THEN D.[Hours] ELSE 0 END) AS Monday,
sum(CASE WHEN DatePart(dw, D.ActivityDate) = 2 THEN D.[Hours] ELSE 0 END) AS Tuesday,
sum(CASE WHEN DatePart(dw, D.ActivityDate) = 3 THEN D.[Hours] ELSE 0 END) AS Wednesday,
sum(CASE WHEN DatePart(dw, D.ActivityDate) = 4 THEN D.[Hours] ELSE 0 END) AS Thursday,
sum(CASE WHEN DatePart(dw, D.ActivityDate) = 5 THEN D.[Hours] ELSE 0 END) AS Friday,
sum(CASE WHEN DatePart(dw, D.ActivityDate) = 6 THEN D.[Hours] ELSE 0 END) AS Saturday,
sum(CASE WHEN DatePart(dw, D.ActivityDate) = 7 THEN D.[Hours] ELSE 0 END) AS Sunday,
sum(D.[Hours]) AS Total
FROM DailyTaskHours D
INNER JOIN Task T ON D.TaskId = T.PK_Task
INNER JOIN Story S ON T.StoryId = S.PK_Story
LEFT JOIN Sprint P ON S.SprintId = P.PK_Sprint
INNER JOIN Product R ON S.ProductId = R.PK_Product
GROUP BY D.PointPerson, R.[Name], P.[Name], P.[Description], S.[Number], T.[Name]
ORDER BY CASE WHEN ISNULL(P.[Name]+' - '+P.[Description], 'KanBan') = 'KanBan'
THEN 1
ELSE 0 END,
Project ASC,
Sprint ASC,
Story ASC,
Task ASC
ご覧のとおり、多くのテーブルの列がまとめられています。
ベース テーブル (DailyTaskHours) との関係を持つ 2 つのテーブルがあります。
現在、私のクエリは、上記のスキーマの右側へのすべての関係を取得します。これらすべてのケースで、DailyTaskHours の列 NonScrumStoryId は NULL です。同じクエリの一部として、NonScrumSoryId が NULL のものを含むすべての DailyTaskHours エントリを返したいと思います。この場合、Task、Story、Sprint、または Product テーブルへの接続はありません。
現在、テーブルは次のようになっています。
したがって、行が NonScrumStory 行である場合、つまり、この行の列が null ではなかった場合、以下のテーブルに入力されますが、Project、Sprint、および Task はすべて NULL になります。ストーリーは NonScrumStory.IncidentNumber から取得されます
どうすればこれを行うことができますか?