1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 6: 37: 38: 39: 40: 41:
WITH cte WIE (AUSERWÄHLTES dbo.vw_TFAM_ALL.TicketID, dbo.vw_TFAM_ALL.CC, dbo.vw_TFAM_ALL.FormType, dbo.vw_TFAM_ALL.SubmittedOn, dbo.vw_TFAM_ALL.AcknBy, dbo.vw_TFAM_ALL.AcknOn, dbo.vw_TFAM_ALL.SubmittedBy, dbo.vw_TFAM_ALL.Status, dbo.vw_TFAM_ALL.isSubmitted, dbo.vw_TFAM_ALL.IndvACF2ID, dbo.vw_TFAM_ALL.PendOrPost, dbo.vw_TFAM_ALL.NoOfEmpl, dbo.vw_TFAM_ALL.Business, dbo.vw_TFAM_ALL.ReqType, FALL WENN [OneForm]. [dbo] „erfüllte“ .vw_TFAM_ALL.Status = ODER [OneForm]. [dbo] „annullierte“ .vw_TFAM_ALL.Status = DANN [OneForm]. [dbo]. [vw_TFAM_SLA_Times] .SLA_in_Min SONST NULL ENDE ALS SLA_Minutes, FALL WENN [OneForm]. [dbo] „erfüllte“ .vw_TFAM_ALL.Status = ODER [OneForm]. [dbo] „annullierte“ .vw_TFAM_ALL.Status = DANN [OneForm]. [dbo]. [vw_TFAM_SLA_Times] SONST NULL .SLA_in_Min/1440 ENDE ALS SLA_Days VON INNEREM dbo.vw_TFAM_SLA_Times VERBINDEN dbo.vw_TFAM_ALL AUF dbo.vw_TFAM_ALL.TicketID = dbo.vw_TFAM_SLA_Times.ticketid) TicketID, cm, FormType, SubmittedOn, AcknBy, AcknOn, SubmittedBy, der Status, isSubmitted, IndvACF2ID, PendOrPost, NoOfEmpl, Geschäft, ReqType VORWÄHLEN, SLA_Minutes, SLA_Days, FALL WENN FormType = „BuildingPass“ UND SLA_Days <= 3 DANN 1 WENN FormType = „CancelAccess“ UND SLA_Days <= 4 DANN 1 WENN FormType = „NameChange“ UND SLA_Days <= 10 DANN 1 WENN FormType = „ChangeAccess“ UND SLA_Days <= 10 DANN 1 WENN FormType = „ETCChange“ UND SLA_Days <= 3 DANN 1 WENN FormType = „EmpStatusChange“ UND SLA_Days <= 3 DANN 1 WENN FormType = „HomeAccess“ UND ReqType = „neuer Zugang“ UND SLA_Days <= 15 DANN 1, WENN FormType = „HomeAccess“ UND ReqType = „Anwendung“ addieren UND SLA_Days <= 15 DANN 1 WENN FormType = „HomeAccess“ UND ReqType = „Löschen-Hauptzugang“ UND SLA_Days <= 10 DANN 1 WENN FormType = „HomeAccess“ UND ReqType = „verlorener/geschädigter Scheinwiedereinbau -/lief“ ab UND SLA_Days <= 15 DANN 1 WENN FormType = „NewHire“ UND SLA_Days <= 10 DANN 1 WENN FormType = „PassReset“ UND SLA_Days <= 3 DANN 1 WENN FormType = „ReactivationAccess“ UND SLA_Days <= 3 DANN 1 WENN FormType = „SharedDrive“ UND SLA_Days <= 7 DANN 1 WENN FormType = „SuspendAccess“ UND SLA_Days <= 3 DANN 1 WENN FormType = „TMChange“ UND SLA_Days <= 5 DANN 1 WENN FormType = „TransferIn“ UND SLA_Days <= 10 DANN 1 WENN FormType = „TransferOut“ UND SLA_Days <= 4 DANN 1 WENN FormType = „PositionChange“ UND SLA_Days <= 10 DANN 1 WENN FormType = „AccessExc“ UND SLA_Days <= 10 DANN 1, WENN FormType = „GenericEmail“ UND ReqType = „neue generische Post Identifikation“ verursachen UND SLA_Days <= 10 DANN 1 WENN FormType = „GenericEmail“ UND ReqType = „Löschung-generische Post Identifikation“ UND SLA_Days <= 5 DANN 1, WENN FormType = „GenericEmail“ UND ReqType = „neue Verteilerliste“ erstellen UND SLA_Days <= 7 DANN 1 WENN FormType = „GenericEmail“ UND ReqType = „Löschung-Verteilerliste“ UND SLA_Days <= 5 DANN 1 WENN FormType = „GenericEmail“ UND ReqType = „Änderungs-Verteilerliste“ UND SLA_Days <= 5 DANN 1 SONST NULL ENDE ALS SLA_Met, FALL, WENN FormType = „AccessExc“ DANN „zurückgreifen - Ausnahme-Prozess“ WENN FormType = „BuildingPass“ DANN „Gebäude-Durchlauf“ WENN FormType = „CancelAccess Zugang“ DANN „annullieren“, WENN FormType = „ChangeAccess“ DANN „Zugang“ ändern, WENN FormType = „EmpStatusChange“ DANN „Beschäftigung-Status-Änderung“ WENN FormType = „ETCChange“ DANN „zu DB usw.-Admin“ ändern, WENN FormType = „GenericEmail“ DANN „generisch“ mailen, WENN FormType = „HomeAccess“ DANN „Hauptzugang“, WENN FormType = „NameChange“ DANN „Namensänderung“, WENN FormType = „NewHire“ DANN „neue Miete“, WENN FormType = „PassReset“ DANN „Kennwort stellte sich“ zurück, WENN FormType = „PositionChange“ DANN „/Rollen-Änderung“ in Position bringen, WENN FormType = „ReactivationAccess“ DANN „Reaktivierung-Zugang“ ALS FormType = „SharedDrive“ DANN „Antriebs-Zugang“ teilte, WENN FormType = „SuspendAccess“ DANN „Zugang“ verschieben, WENN FormType = „TMChange“ DANN „Mannschaft-Manager-Änderung nur“, WENN FormType = „TransferIn“ DANN „in“ bringen, WENN FormType = „TransferOut“ DANN „heraus“ ENDE WIE bringen FormName Vom cte ALS cte_1
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 6: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
FUNKTION [dbo] VERURSACHEN. [CalcMinutesSLA_TFAM] ( @startTime DATUM/UHRZEIT, @endTime DATUM/UHRZEIT ) zurückbringt int bringt wie anfangen @minutes int erklären; Datum/Uhrzeit @startPlus1 erklären Datum/Uhrzeit @endLess1 erklären -- die Strecke während der ganzen Tage in-between ausarbeiten vorwählen @startPlus1 = datediff (d, 0, @startTime+1), @endLess1 = datediff (d, 0, @endTime-1) -- überprüfen, wieviele Nichtwochenende Tage in dieser Strecke existieren @minutes vorwählen = 480 * (Bekehrter (int, @endLess1-@startPlus1) /7*5 + Zählimpuls (*)) vom Meister. .spt_values wo type='P und Zahl zwischen 0 und datediff (d, @startPlus1+convert (int, @endLess1-@startPlus1) /7*7, @endLess1) und datename (dw, @startPlus1+number)! = „S“ -- überprüfen, wieviele Nichtwochenende Feiertage in dieser Strecke existieren @minutes = @minutes vorwählen - Zählimpuls (*) von den web_holidays wo HolidayDate zwischen @startPlus1 und @endless1 und verlassen (datename (dw, HolidayDate), 1)! = „S“ -- Zeiten für zuerst/letzte Tage justieren wenn datepart (hh, @startTime) < 9="" set="">= gesetztes @endTime 17 = datediff (DD, 0, @endTime) +17.0/24 wenn @startTime >= @endTime Rückkehr verschmilzt (@minutes, 0); -- wenn Anfangsdatum nicht ein Feiertag und nicht ein Wochenende ist, Minuten addieren @minutes = @minutes vorwählen + datediff (MI, @startTime, datediff (DD, 0, @startTime) +17.0/24) wo nicht existiert ( * von den web_holidays vorwählen wo HolidayDate = datediff (DD, 0, @startTime)) und verlassen (datename (dw, @startTime), 1)! = „S“ -- wenn Enddatum nicht ein Feiertag und nicht ein Wochenende ist, Minuten addieren @minutes = @minutes vorwählen + datediff (MI, datediff (DD, 0, @endTime) +9.0/24, @endTime) wo nicht existiert ( * von den web_holidays vorwählen wo HolidayDate = datediff (DD, 0, @endTime)) und verlassen (datename (dw, @endTime), 1)! = „S“ -- wenn start=end, wir den Tag zweimal gezählt, 480 beseitigen @minutes = @minutes vorwählen - 480 wo nicht existiert ( * von den web_holidays vorwählen wo HolidayDate = datediff (DD, 0, @endTime)) und verlassen (datename (dw, @endTime), 1)! = „S“ und datediff (d, @startTime, @endTime) = 0 -- der gleiche Tag zurückgehen verschmelzen (@minutes, 0); Ende GEHEN