我試圖找到最多的天數(以及審閱者的徽章編號),它需要幾位審閱者之一批准工作流中的特定文檔。例如,我有一張表格,其中包含多個工作流程審批步驟(提交者,經理,控制員,質量保證),以及他們的徽章號碼和他們批准的日期。該表稱爲「工作流程」,並具有上述四個工作流程步驟作爲表格中的記錄,以及與工作流程具有一對多關係的主表格設計。SQL Server根據計算從多個行中選擇一個
我正在嘗試確定最長審閱步驟(天數)以及該步驟的審閱者(基本持有審批工作流程)的徽章編號。我一直在試圖設置獨立變量以供以後使用,但不知道如何設置徽章號碼,我很困惑。我已經嘗試過CASE,IIF和COALESCE,但沒有任何運氣,因爲我不想讓第一個真正的值返回,然後停下來,我希望它繼續評估所有步驟。這是我的SQL的一個例子:
declare @managerTime int = 0
declare @controllerTime int = 0
declare @qaTime int = 0
SET @managerTime = (SELECT DATEDIFF(day, manager.BadgeDate, submitter.BadgeDate)
from Design d
left outer join Workflow submitter on (d.DCRId = submitter.DCRId and submitter.RoleName = 'Submitter')
left outer join Workflow manager on (d.DCRId = manager.DCRId and manager.RoleName = 'System Manager')
SET @controllerTime = (SELECT DATEDIFF(day, controller.BadgeDate, manager.BadgeDate)
from Design d
left outer join Workflow manager on (d.DCRId = manager.DCRId and manager.RoleName = 'System Manager')
left outer join Workflow controller on (d.DCRId = controller.DCRId and controller.RoleName = 'DCR Controller')
你能提供ddl的一些測試數據嗎? – scsimon