Я знаю, что проблема в моем предложении WHERE, но у меня нет хорошего решения, чтобы исправить проблему.
если запись в разделе 2 не помечена как удаленная и связана с записью раздела 3, которая помечена как удаленная, тогда я полностью потеряю запись.
Любая помощь будет оценена.
p.s тоже самое происходит от 3 до 4
структура таблицы не может быть изменена, к сожалению ... до моего времени.
Table FK PK bit
------------------------------------------
Section1 | JobID | Sect1ID | isDeleted
Section2 | Sect1ID | Sect2ID | isDeleted
Section3 | Sect2ID | Sect3ID | isDeleted
Section4 | Sect3ID | Sect4ID | isDeleted
Хранимая процедура:
@JobId int
AS
SET NOCOUNT ON
SELECT J.Section1,
J.Section2,
J.Section3,
J.Section4,
S1.Id AS Section1Id,
S1.[Order] + 1 AS S1Order,
S1.Text AS S1Text,
S2.Id AS Section2Id,
S2.Text AS S2Text,
S2.[Order] AS S2Order,
S3.Id AS Section3Id,
S3.Text AS S3Text,
S3.[Order] + 1 AS S3Order,
S4.Id AS Section4Id,
S4.Text AS S4Text,
S4.[Order] AS S4Order
FROM JT_Jobs J
JOIN JT_Section1 S1 ON J.JobId = S1.JobId
LEFT JOIN JT_Section2 S2 ON S1.Id = S2.Section1Id
LEFT JOIN JT_Section3 S3 ON S2.Id = S3.Section2Id
LEFT JOIN JT_Section4 S4 ON S3.Id = S4.Section3Id
WHERE J.JobId = @JobId
AND S1.IsDeleted = 0
AND (s2.IsDeleted is null or s2.IsDeleted = 0)
AND (s3.IsDeleted is null or s3.IsDeleted = 0)
AND (s4.IsDeleted is null or s4.IsDeleted = 0)
ORDER BY S1.[Order], S2.[Order], S3.[Order], S4.[Order]