Существует представление, которое необходимо рассчитать состояние отчета. Однако он становится немного сложным и ищет некоторую помощь.Условный запрос для определения состояния моих отчетов
Пример данных: http://jsfiddle.net/ZpQ95/4/
В этом примере
отчет 1 будет утвержден
отчет 2 будет запрещен
отчет 3 будет ожидании
Доклад 4 будет Проект
В принципе, для этого мне нужно создать Status Column.
- Если все 5 ролей одобрены (2), то отчет утверждается.
- Если нет записей об утверждении, отчет является черновиком (1).
- Если есть какие-либо утверждения (2) и нет отрицаний (3), то отчет находится в ожидании
- Если есть отказ в утверждении (3), то отчет отклоняется.
C# пример # 1 - Approved:
JobRoles.All(j => report.Approvals.Any(a => a.Role == j && a.Status == Approvals.Approved))
C# Пример # 2 - Проект
report.Approvals.Count == 0
C# Пример # 3 - До
!report.Approvals.Any(s => s.Status == Approvals.Denied) && report.Approvals.Count > 0
C# Пример № 4 - Отклонено
report.Approvals.Count > 0 && report.Approvals.Any(s => s.Status == Approvals.Denied)
Это будет суб-запрос на моем главном запросе, который перебирает все отчеты:
SELECT Id, FromDate, ToDate,
(Status) FROM dbo.Reports AS EX
WHERE (IsDeleted = 0)
таблица состояния называется: dbo.Approvals
SQL Server 2012
спасибо: D ~ Jacob
Спасибо, тонна Кайл! –