Advertisement
Guest User

Confirm - Streetwork Dashboard Query

a guest
Aug 6th, 2019
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 8.15 KB | None | 0 0
  1. SELECT DISTINCT
  2.   sw_header.work_header_no,
  3.   sw_header.works_ref,
  4.   sw_header.internal_ref,
  5.   sw_header.work_comments,
  6.   permit_app_notice.notice_issue_time,
  7.   current_notice.works_desc,
  8.   central_site.site_code,
  9.   central_site.site_name,
  10.   town.town_name,
  11.   current_status.works_status_name as current_status,
  12.   current_notice.work_start_date as work_start_date,
  13.   current_notice_type.notice_type_name as current_notice_type_name,
  14.   permit_app_notice.notice_type_name as permit_application_type,
  15.   permit_resp_notice.notice_type_name as permit_response_type,
  16.   CASE
  17.       WHEN EXISTS
  18.          (  SELECT 1
  19.             FROM sw_notice_design swnd
  20.                INNER JOIN designation d ON swnd.designation_code = d.designation_code                      
  21.             WHERE swnd.work_header_no = current_notice.work_header_no
  22.                AND swnd.work_version_no = current_notice.work_version_no
  23.                AND swnd.site_number = current_notice.primary_site_no
  24.                AND d.external_reference = '2'
  25.          ) THEN 'Y'
  26.       ELSE 'N'
  27.    END as traffic_sensitive,
  28.    CASE permit_app_notice.permit_status
  29.       WHEN 'ON' THEN 'PAA Pending'
  30.       WHEN 'PN' THEN 'Permit Pending'
  31.       WHEN 'PA' THEN 'PAA With Permit Pending'
  32.       WHEN 'RN' THEN 'Refused'
  33.       WHEN 'RA' THEN 'Refused With PAA'
  34.       WHEN 'RP' THEN 'Refused With Permit'
  35.       WHEN 'GA' THEN 'Granted PAA'
  36.       WHEN 'GP' THEN 'Granted Permit'
  37.       WHEN 'OA' THEN 'PAA Variation Pending'
  38.       WHEN 'PP' THEN 'Permit Variation Pending'
  39.       WHEN 'PI' THEN 'Immediate Pending'
  40.       WHEN 'RI' THEN 'Refused Immediate'
  41.       WHEN 'VP' THEN 'Revoked Permit'
  42.       WHEN 'VA' THEN 'Revoked PAA'
  43.       ELSE 'Not A Permit'
  44.    END as permit_status,
  45.    CASE
  46.       WHEN EXISTS
  47.                      (SELECT 1
  48.                                   FROM sw_notice_site swns1
  49.                                   WHERE
  50.                                      permit_app_notice.work_header_no = swns1.work_header_no
  51.                                                 AND permit_app_notice.work_version_no = swns1.work_version_no
  52.                                      AND swns1.traffic_code = 'T09'
  53.                                   ) THEN 'Y'
  54.                   ELSE 'N'
  55.    END as road_closure,
  56.    CASE
  57.       WHEN EXISTS
  58.                      (SELECT 1
  59.                                   FROM sw_notice_site swns1
  60.                                   WHERE
  61.                                      permit_app_notice.work_header_no = swns1.work_header_no
  62.                                                 AND permit_app_notice.work_version_no = swns1.work_version_no
  63.                                      AND swns1.traffic_code = 'T07'
  64.                                   ) THEN 'Y'
  65.                   ELSE 'N'
  66.    END as lane_closure,
  67.    CASE
  68.       WHEN EXISTS
  69.                      (SELECT 1
  70.                                   FROM sw_notice_site swns1
  71.                                   WHERE
  72.                                      permit_app_notice.work_header_no = swns1.work_header_no
  73.                                                 AND permit_app_notice.work_version_no = swns1.work_version_no
  74.                                      AND swns1.traffic_code = 'T10'
  75.                                   ) THEN 'Y'
  76.                   ELSE 'N'
  77.    END as footway_closure,
  78.   CASE
  79.      WHEN current_notice.permit_scheme_key IS NULL THEN 'N'ELSE 'Y'
  80.   END as permit_notice,
  81.   CASE
  82.       WHEN permit_app_notice.external_reference IN ('E40210A','E40210B','E40210C','E40210D','E40310')
  83.                      THEN 'Permit Application'
  84.       WHEN permit_app_notice.external_reference IN ('E40311A','E40510','E41110','E41614')
  85.                      THEN 'Permit Modification'
  86.       ELSE 'Indeterminable'
  87.   END as notice_type_category,
  88.   (DATEDIFF(dd, CURRENT_TIMESTAMP, permit_app_notice.permit_date)) -
  89.       (DATEDIFF(wk, CURRENT_TIMESTAMP, permit_app_notice.permit_date) * 2) +
  90.       (CASE WHEN DATENAME(dw, CURRENT_TIMESTAMP) = 'Sunday' THEN 1 ELSE 0 END) +
  91.       (CASE WHEN DATENAME(dw, permit_app_notice.permit_date) = 'Saturday' THEN 1 ELSE 0 END) -
  92.       (SELECT COUNT(1) FROM nonworking_day nwd WHERE nwd.nonworking_date BETWEEN CURRENT_TIMESTAMP AND permit_app_notice.permit_date)
  93.    as days_left,
  94.    CASE
  95.       WHEN DATEDIFF(day,CURRENT_TIMESTAMP,permit_app_notice.permit_date) = 0
  96.          THEN 'Today'
  97.       WHEN DATEDIFF(day,CURRENT_TIMESTAMP,permit_app_notice.permit_date) = 1
  98.          THEN 'Tomorrow'
  99.       WHEN DATEDIFF(day,CURRENT_TIMESTAMP,permit_app_notice.permit_date) > 1
  100.          THEN 'More Than 1 Day'
  101.       WHEN DATEDIFF(day,CURRENT_TIMESTAMP,permit_app_notice.permit_date) < 0
  102.          THEN 'Deemed Date Passed'
  103.       WHEN permit_app_notice.permit_date IS NULL
  104.          THEN 'Permit Date Missing'
  105.       ELSE
  106.          'Indeterminable'
  107.    END as response_period,
  108.   CASE
  109.      WHEN sw_header.cancelled_by IS NULL THEN 'N' ELSE 'Y'
  110.   END as works_cancelled,
  111.   current_notice.works_location,
  112.   CASE street_work_type.external_reference
  113.      WHEN 'E41' THEN 'Major'
  114.                 WHEN 'E42' THEN 'Standard'
  115.                 WHEN 'E43' THEN 'Minor'
  116.                 WHEN 'E44' THEN 'Immediate'
  117.                 WHEN 'E45' THEN 'Immediate'
  118.                 ELSE 'Unknown'
  119.   END as sw_category
  120. FROM
  121.   sw_header
  122.   INNER JOIN sw_notice_header current_notice ON sw_header.work_header_no = current_notice.work_header_no
  123.   AND sw_header.work_version_no = current_notice.work_version_no
  124.   INNER JOIN notice_type current_notice_type ON current_notice.notice_type_code = current_notice_type.notice_type_code
  125.   INNER JOIN sw_works_status current_status ON current_notice.works_status_code = current_status.works_status_code
  126.   INNER JOIN organisation ON sw_header.organise_code = organisation.organise_code
  127.   INNER JOIN organise_group ON organisation.org_group_code = organise_group.org_group_code
  128.   LEFT JOIN (
  129.     SELECT
  130.       a.work_header_no as work_header_no,
  131.       a.work_version_no as work_version_no,
  132.       a.permit_date as permit_date,
  133.       notice_type.notice_type_name as notice_type_name,
  134.                  a.notice_issue_time,
  135.       a.permit_status,
  136.                  notice_type.external_reference
  137.                FROM
  138.       sw_notice_header a
  139.       INNER JOIN notice_type ON a.notice_type_code = notice_type.notice_type_code
  140.     WHERE
  141.       notice_type.external_reference IN (
  142.         'E40210A',
  143.         'E40210B',
  144.         'E40210C',
  145.         'E40210D',
  146.         'E40310',
  147.         'E40311A',
  148.         'E40510',
  149.         'E41110')
  150.        and a.work_version_no = (select max(work_version_no) from sw_notice_header b where b.work_header_no = a.work_header_no)
  151.   ) permit_app_notice ON sw_header.work_header_no = permit_app_notice.work_header_no
  152.   LEFT JOIN (
  153.     SELECT
  154.       a.work_header_no as work_header_no,
  155.       a.work_version_no as work_version_no,
  156.       a.permit_date as permit_date,
  157.       notice_type.notice_type_name as notice_type_name
  158.     FROM
  159.       sw_notice_header a
  160.       INNER JOIN notice_type ON a.notice_type_code = notice_type.notice_type_code
  161.     WHERE
  162.       notice_type.external_reference IN ('E40900','E41610','E41611','E41612','E41613','E41614')
  163.       and a.work_version_no = (select max(work_version_no) from sw_notice_header b where b.work_header_no = a.work_header_no)
  164.   ) permit_resp_notice ON sw_header.work_header_no = permit_resp_notice.work_header_no
  165.   INNER JOIN sw_notice_site ON
  166.      current_notice.work_header_no = sw_notice_site.work_header_no
  167.                 AND current_notice.work_version_no = sw_notice_site.work_version_no
  168.                 AND current_notice.primary_site_no = sw_notice_site.site_number
  169.   INNER JOIN central_site ON
  170.      sw_notice_site.site_code = central_site.site_code
  171.   INNER JOIN locality ON
  172.      central_site.locality_id = locality.locality_id
  173.  INNER JOIN town ON
  174.      locality.town_id = town.town_id
  175.   INNER JOIN street_work_type ON
  176.      current_notice.street_work_code = street_work_type.street_work_code
  177. WHERE
  178.   current_notice.notice_type_code != '0900'
  179.   AND (permit_resp_notice.work_version_no IS NULL OR permit_resp_notice.work_version_no < permit_app_notice.work_version_no)
  180.   AND current_notice.permit_date > (GETDATE() - 1)
  181.   AND current_notice.permit_scheme_key IS NOT NULL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement