简体   繁体   中英

SQL Windowed functions cannot be used in the context of another windowed function or aggregate

Hi Have a bit of SQL that is used for our call logging system and I want to see how many calls breach the 4 hour SLQ responce time

the issue that i have is that on line 33 I use MIN and get an error because i am also using COUNT

(Msg 4109, Level 15, State 1, Line 33 Windowed functions cannot be used in the context of another windowed function or aggregate.)

Any better way to code it or how to get round it

    SELECT Count(CASE 
               WHEN dbo.assignment.enddate IS NOT NULL 
                    AND dbo.assignment.enddate < ( CASE 
                                                     WHEN Datepart(dw, 
       dbo.dt_list_requests.createdon) = 
       1 THEN 
       Dateadd(dd, 1, ( Dateadd(hh, 11, ( 
                   Dateadd(dd, 0, Datediff 
                   (dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 7 THEN 
       Dateadd(dd, 2, ( Dateadd(hh, 11, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6 
       AND dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( 
       Dateadd(mi, 30, ( 
       Dateadd(dd, 0, Datediff( 
       dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
         ( 
       Dateadd(hh, 11, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6 
       AND Dateadd(hh, 4, dbo.dt_list_requests.createdon) > 
       Dateadd(hh, 17, ( 
              Dateadd(mi, 30, 
              ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
         ( 
       Dateadd(hh, 17, ( Dateadd(mi, 30, 
       dbo.dt_list_requests.createdon) )) )) 
       WHEN dbo.dt_list_requests.createdon < Dateadd(hh, 7, ( 
       Dateadd(dd, 0, Datediff 
       (dd, 0, 
       dbo.dt_list_requests.createdon)) )) THEN Dateadd(hh, 11, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) 
       WHEN dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( 
           Dateadd(mi, 30, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 1, ( 
       Dateadd(hh, 11, ( 
       Dateadd(dd, 0, 
       Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Dateadd(hh, 4, dbo.dt_list_requests.createdon) > 
       Dateadd(hh, 17, ( 
       Dateadd(mi, 30, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(hh, 17, ( 
       Dateadd(mi, 30, dbo.dt_list_requests.createdon) )) 
       ELSE Dateadd(hh, 4, dbo.dt_list_requests.createdon) 
       END ) THEN NULL 
       WHEN dbo.dt_list_requests.respondedtoon IS NOT NULL 
       AND dbo.dt_list_requests.respondedtoon < ( CASE 
              WHEN Datepart(dw, 
       dbo.dt_list_requests.createdon) = 1 THEN 
       Dateadd(dd, 1, ( Dateadd(hh, 11, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, 
       dbo.dt_list_requests.createdon) = 7 THEN 
       Dateadd(dd, 2, ( Dateadd(hh, 11, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, 
       dbo.dt_list_requests.createdon) = 6 
       AND 
       dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( 
       Dateadd(mi, 30, ( 
       Dateadd(dd, 0, Datediff( 
       dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
       ( 
       Dateadd(hh, 11, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, 
       dbo.dt_list_requests.createdon) = 6 
       AND 
       Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, ( 
       Dateadd(mi, 30, 
       ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
       ( 
       Dateadd(hh, 17, ( Dateadd(mi, 30, 
       dbo.dt_list_requests.createdon) )) )) 
       WHEN 
       dbo.dt_list_requests.createdon < Dateadd(hh, 7, ( 
       Dateadd(dd, 0, Datediff 
       (dd, 0, 
       dbo.dt_list_requests.createdon)) )) THEN Dateadd(hh, 11, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) 
       WHEN 
       dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( Dateadd(mi, 30, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 1, ( 
       Dateadd(hh, 11, ( 
       Dateadd(dd, 0, 
       Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN 
       Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, ( 
       Dateadd(mi, 30, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(hh, 17, ( 
       Dateadd(mi, 30, 
       dbo.dt_list_requests.createdon) )) 
       ELSE 
       Dateadd(hh, 4, dbo.dt_list_requests.createdon) 
       END ) THEN NULL 
       WHEN dbo.dt_list_requests.assignment_startdate IS NOT NULL 
       AND dbo.dt_list_requests.assignment_startdate < ( CASE 
                     WHEN 
       Datepart(dw, dbo.dt_list_requests.createdon) = 1 THEN 
                     Dateadd(dd, 1, ( 
                     Dateadd(hh, 11, ( 
                     Dateadd(dd, 0, 
                     Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 7 THEN 
       Dateadd(dd, 2, ( Dateadd(hh, 11, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6 
       AND dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( 
               Dateadd(mi, 30, ( 
               Dateadd(dd, 0, Datediff( 
               dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
                          ( 
       Dateadd(hh, 11, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6 
       AND Dateadd(hh, 4, dbo.dt_list_requests.createdon) > 
       Dateadd(hh, 17, ( 
       Dateadd(mi, 30, 
       ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
                          ( 
       Dateadd(hh, 17, ( Dateadd(mi, 30, 
       dbo.dt_list_requests.createdon) )) )) 
       WHEN dbo.dt_list_requests.createdon < Dateadd(hh, 7, ( 
           Dateadd(dd, 0, Datediff 
           (dd, 0, 
       dbo.dt_list_requests.createdon)) )) THEN Dateadd(hh, 11, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) 
       WHEN dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( 
           Dateadd(mi, 30, ( 
           Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 1, ( 
                      Dateadd(hh, 11, ( 
                      Dateadd(dd, 0, 
                      Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Dateadd(hh, 4, dbo.dt_list_requests.createdon) > 
       Dateadd(hh, 17, ( 
       Dateadd(mi, 30, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(hh, 17, ( 
       Dateadd(mi, 30, dbo.dt_list_requests.createdon) )) 
       ELSE Dateadd(hh, 4, dbo.dt_list_requests.createdon) 
       END ) THEN NULL 
       WHEN Min(dbo.assignment.enddate) 
       OVER ( 
       partition BY dbo.assignment.requestid) < ( CASE 
                  WHEN 
       Datepart(dw, dbo.dt_list_requests.createdon) = 1 THEN 
                  Dateadd(dd, 1, ( 
                  Dateadd(hh, 11, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 7 THEN 
       Dateadd(dd, 2, ( Dateadd(hh, 11, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6 
       AND dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( 
           Dateadd(mi, 30, ( 
           Dateadd(dd, 0, Datediff( 
           dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
                      ( 
       Dateadd(hh, 11, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6 
       AND Dateadd(hh, 4, dbo.dt_list_requests.createdon) > 
       Dateadd(hh, 17, ( 
       Dateadd(mi, 30, 
       ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 3, 
                      ( 
       Dateadd(hh, 17, ( Dateadd(mi, 30, 
       dbo.dt_list_requests.createdon) )) )) 
       WHEN dbo.dt_list_requests.createdon < Dateadd(hh, 7, ( 
       Dateadd(dd, 0, Datediff 
       (dd, 0, 
       dbo.dt_list_requests.createdon)) )) THEN Dateadd(hh, 11, ( 
               Dateadd(dd, 0, 
               Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) 
       WHEN dbo.dt_list_requests.createdon > Dateadd(hh, 17, ( Dateadd(mi, 30, ( 
       Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(dd, 1, ( 
                  Dateadd(hh, 11, ( 
                  Dateadd(dd, 0, 
                  Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) 
       WHEN Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, ( 
       Dateadd(mi, 30, ( Dateadd(dd, 0, Datediff(dd, 0, 
       dbo.dt_list_requests.createdon)) )) )) THEN Dateadd(hh, 17, ( 
       Dateadd(mi, 30, dbo.dt_list_requests.createdon) )) 
       ELSE Dateadd(hh, 4, dbo.dt_list_requests.createdon) 
       END ) THEN NULL 
       ELSE '1' 
       END) AS Number_Breached 
FROM   dbo.request 
       INNER JOIN dbo.user_ 
               ON dbo.request.solvedbyuserid = dbo.user_.userid 
       INNER JOIN dbo.person 
               ON dbo.user_.personorganisationalunitid = dbo.person.ciid 
       INNER JOIN dbo.assignment 
               ON dbo.request.assignmentid = dbo.assignment.assignmentid 
       INNER JOIN dbo.dt_list_requests 
               ON dbo.request.requestid = dbo.dt_list_requests.requestid 
WHERE  ( dbo.person.jobtitle LIKE '%IS 1st Line Support%' ) 
       AND dbo.request.datecreated > Dateadd(month, Datediff(month, 0, Getdate() 
                                                    ) - 1, 
                                     0) 
       AND dbo.request.datecreated < Dateadd(month, Datediff(month, -1, Getdate( 
                                                    )) - 1, 
                                     -1) 
       AND dbo.request.requesttypeid = '1' 

It's as easy as tossing all your code in a subquery and performing the count like so. BTW http://poorsql.com/ is a great tool to format code quickly and easily.

SELECT COUNT(Col_to_Be_Counted) AS Number_Breached
FROM
(
    SELECT CASE 
                WHEN dbo.assignment.enddate IS NOT NULL
                    AND dbo.assignment.enddate < (
                        CASE 
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 1
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 7
                                THEN Dateadd(dd, 2, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))))
                            WHEN dbo.dt_list_requests.createdon < Dateadd(hh, 7, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                                THEN Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                            WHEN dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))
                            ELSE Dateadd(hh, 4, dbo.dt_list_requests.createdon)
                            END
                        )
                    THEN NULL
                WHEN dbo.dt_list_requests.respondedtoon IS NOT NULL
                    AND dbo.dt_list_requests.respondedtoon < (
                        CASE 
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 1
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 7
                                THEN Dateadd(dd, 2, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))))
                            WHEN dbo.dt_list_requests.createdon < Dateadd(hh, 7, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                                THEN Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                            WHEN dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))
                            ELSE Dateadd(hh, 4, dbo.dt_list_requests.createdon)
                            END
                        )
                    THEN NULL
                WHEN dbo.dt_list_requests.assignment_startdate IS NOT NULL
                    AND dbo.dt_list_requests.assignment_startdate < (
                        CASE 
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 1
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 7
                                THEN Dateadd(dd, 2, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))))
                            WHEN dbo.dt_list_requests.createdon < Dateadd(hh, 7, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                                THEN Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                            WHEN dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))
                            ELSE Dateadd(hh, 4, dbo.dt_list_requests.createdon)
                            END
                        )
                    THEN NULL
                WHEN Min(dbo.assignment.enddate) OVER (PARTITION BY dbo.assignment.requestid) < (
                        CASE 
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 1
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 7
                                THEN Dateadd(dd, 2, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Datepart(dw, dbo.dt_list_requests.createdon) = 6
                                AND Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 3, (Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))))
                            WHEN dbo.dt_list_requests.createdon < Dateadd(hh, 7, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                                THEN Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))
                            WHEN dbo.dt_list_requests.createdon > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(dd, 1, (Dateadd(hh, 11, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                            WHEN Dateadd(hh, 4, dbo.dt_list_requests.createdon) > Dateadd(hh, 17, (Dateadd(mi, 30, (Dateadd(dd, 0, Datediff(dd, 0, dbo.dt_list_requests.createdon))))))
                                THEN Dateadd(hh, 17, (Dateadd(mi, 30, dbo.dt_list_requests.createdon)))
                            ELSE Dateadd(hh, 4, dbo.dt_list_requests.createdon)
                            END
                        )
                    THEN NULL
                ELSE '1'
                END AS Col_to_Be_Counted
    FROM dbo.request
    INNER JOIN dbo.user_ ON dbo.request.solvedbyuserid = dbo.user_.userid
    INNER JOIN dbo.person ON dbo.user_.personorganisationalunitid = dbo.person.ciid
    INNER JOIN dbo.assignment ON dbo.request.assignmentid = dbo.assignment.assignmentid
    INNER JOIN dbo.dt_list_requests ON dbo.request.requestid = dbo.dt_list_requests.requestid
    WHERE (dbo.person.jobtitle LIKE '%IS 1st Line Support%')
        AND dbo.request.datecreated > Dateadd(month, Datediff(month, 0, Getdate()) - 1, 0)
        AND dbo.request.datecreated < Dateadd(month, Datediff(month, - 1, Getdate()) - 1, - 1)
        AND dbo.request.requesttypeid = '1'
) A

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM