maximus1974
asked on
Query pinning SQL Server at 100%
When running the following query, it never completes and pins the SQL Server at 100%. Found that if I comment out this below, it works fine:
AND (WOS.TAT_STOP_DATE_CUST_V2 IS NULL OR (DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2, GETDATE()) <=36)) --AND WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE AND WOS.TAT_STOP_DATE_CUST_V2< =GETDATE() ))
I cannot find a problem with the data in these columns.
AND (WOS.TAT_STOP_DATE_CUST_V2
I cannot find a problem with the data in these columns.
SELECT
data_query.*,
SUM(PROFIT.REVENUE) REV,
SUM(PROFIT.COGS_LABOR+PROFIT.COGS_PARTS+PROFIT.COGS_SUBCONTRACTING+PROFIT.COGS_REWORKS+PROFIT.COGS_SRU_EXCH+PROFIT.COGS_MISC) COGS,
SUM(PROFIT.REVENUE) - sum(PROFIT.COGS_LABOR+PROFIT.COGS_PARTS+PROFIT.COGS_SUBCONTRACTING+PROFIT.COGS_REWORKS+PROFIT.COGS_SRU_EXCH+PROFIT.COGS_MISC) MARGIN_WO
FROM (
SELECT WOS.WO_NUMBER,
WOS.WO_TYPE,
WOS.ACCT_COMPANY,
WOS.DEPT_NAME,
CASE WHEN WON_AUTO_KEY=2 THEN 'GSTE'
WHEN WON_AUTO_KEY=7 THEN 'OTHER/NOT CLASSIFIED' --'AF WH - DORAL 2'
WHEN WON_AUTO_KEY=9 THEN 'DORAL 1'
WHEN WON_AUTO_KEY=10 THEN 'MIAMI'
WHEN WON_AUTO_KEY=11 THEN 'DORAL 2'
WHEN WON_AUTO_KEY=12 THEN 'ATLANTA'
WHEN WON_AUTO_KEY=13 THEN 'PHOENIX'
WHEN WON_AUTO_KEY=14 THEN 'LOUISVILLE'
WHEN WON_AUTO_KEY=32 THEN 'OTHER/NOT CLASSIFIED' --'BIC POOL - DORAL 2'
ELSE 'OTHER/NOT CLASSIFIED'
END LOCATION,
WOS.SHOP_TYPE,
WOS.MFG_CODE,
ISNULL(TECHNO.ATTRIBUTE_VALUE, '_NOT CLASSIFIED') "TECHNOLOGY",
ISNULL(PROD_GROUP.ATTRIBUTE_VALUE, '_NOT CLASSIFIED') "PRODUCT GROUP",
ISNULL(SUB_GROUP.ATTRIBUTE_VALUE, '_NOT CLASSIFIED') "SUB GROUP",
WOS.PN,
WOS.DESCRIPTION,
MANUF.DESCRIPTION AS OEM,
WOS.SERIAL_NUMBER,
WOS.CUSTOMER_NAME,
WOS.CUSTOMER_PO,
WOS.PBH_CUSTOMER,
CASE WHEN PBH_CUSTOMER='N' THEN 'SINGLE EVENT'
WHEN PBH_CUSTOMER='Y' THEN
CASE WHEN WO_TYPE='EXTERNAL' THEN 'PBH - CLOSE LOOP'
WHEN WO_TYPE='INTERNAL' THEN 'PBH - POOL'
END
END CONTRACT_TYPE,
WOS.WORK_REQUESTED,
WOS.WORK_PERFORMED,
WOS.STATUS,
WOS.SO_NUMBER,
WOS.EXCHANGE_DATE,
WOS.EXCHANGE_TYPE_CODE,
WOS.RO_NUMBER,
WOS.LAST_RO,
WOS.SHIPPING_ORDER,
ISNULL(WOS.CONTRACT_TAT, 21) CONTRACT_TAT,
WOS.TAT_START_DATE,
WOS.RECEIVED_DATE,
WOS.ENTRY_DATE,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND (WOS.TAT_START_DATE <= WOS.ENTRY_DATE)
THEN DATEDIFF(day,WOS.TAT_START_DATE, WOS.ENTRY_DATE) - ISNULL(WOS.RC_EXCUSABLE_DELAY_V2,0)
ELSE 0
END RECEIVING_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND ((WOS.RECEIVED_DATE IS NULL) OR (WOS.RECEIVED_DATE > WOS.ENTRY_DATE)) THEN 1
ELSE 0
END INCONSISTENT_RECEIVING_DATE,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN ISNULL(WOS.RC_EXCUSABLE_DELAY_V2,0)
ELSE 0
END EXCUSABLE_DELAY_RC,
WOS.DUE_DATE,
WOS.DATE_MOVED_TO_QUOTING,
WOS.FIRST_QUOTE_SENT,
WOS.LAST_QUOTE_SENT,
WOS.QUOTE_SENT_OVERRIDE,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND (WOS.PBH_CUSTOMER='N') AND (ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT) IS NOT NULL)
AND (DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)) > ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0)) THEN
DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)) - ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0)
ELSE 0
END QUOTING_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND (WOS.PBH_CUSTOMER='N') AND (WOS.QUOTE_SENT_OVERRIDE IS NOT NULL) THEN 1
ELSE 0
END CORRECTED_QUOTE_DATE,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND (WOS.PBH_CUSTOMER='N') AND (WOS.QUOTE_APPROVED_OVERRIDE IS NOT NULL) THEN 1
ELSE 0
END CORRECTED_QUOTE_APPROVED_DATE,
WOS.LAST_QUOTE_APPROVED,
WOS.QUOTE_APPROVED_OVERRIDE,
WOS.RELEASE_DATE,
WOS.CAA_DATE,
WOS.CLOSE_DATE_ORIG,
WOS.CLOSE_DATE,
-- BA_WO_EXCUSABLE_DELAY = BA_WO_EXCUSABLE_DELAY(p_woo,SYSDATE,ENTRY_DATE,CLOSE_DATE_ORIG)
-- BA_WO_WQ_EXCUSABLE_DELAY = BA_WO_WQ_EXCUSABLE_DELAY(p_woo,SYSDATE,ENTRY_DATE,CLOSE_DATE_ORIG)
-- BA_WQ_EXCUSABLE_DELAY = BA_WQ_EXCUSABLE_DELAY(p_woo,SYSDATE,ENTRY_DATE,CLOSE_DATE_ORIG)
-- BA_WO_EXCUSABLE_DELAY_V2 = BA_WO_EXCUSABLE_DELAY - BA_WQ_EXCUSABLE_DELAY + BA_WO_WQ_EXCUSABLE_DELAY
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN
CASE WHEN WOS.PBH_CUSTOMER='Y' THEN
CASE WHEN (EXCHANGE_TYPE_CODE=5) AND (EXCHANGE_DATE IS NOT NULL) THEN
DATEDIFF(DAY,WOS.ENTRY_DATE,WOS.TAT_STOP_DATE_CUST_V2)
ELSE DATEDIFF(DAY,WOS.ENTRY_DATE,WOS.CLOSE_DATE_ORIG)
END
- ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0)
ELSE
CASE WHEN (EXCHANGE_TYPE_CODE=5) AND (EXCHANGE_DATE IS NOT NULL) THEN
DATEDIFF(DAY,ISNULL(ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT),WOS.ENTRY_DATE),WOS.TAT_STOP_DATE_CUST_V2)
ELSE DATEDIFF(DAY,ISNULL(ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT),WOS.ENTRY_DATE),WOS.CLOSE_DATE_ORIG)
END
-
CASE WHEN ISNULL(DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)),0) < ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0) THEN
ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0) - ISNULL(DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)),0)
ELSE 0
END
END
-
ISNULL(WOS.WQ_EXCUSABLE_DELAY,0)
ELSE 0
END SHOP_REPAIR_TAT, -- TAT BETWEEN QUOTE_DATE AND CLOSE_DATE SUBSTRACTING PART_SHORTAGE
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN ISNULL(PART_SHORT.TAT,0)
ELSE 0
END PART_SHORTAGE_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN (ISNULL(WOS.WQ_EXCUSABLE_DELAY,0)+ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0))
ELSE 0
END EXCUSABLE_DELAY_WO,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN
CASE WHEN ISNULL(DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)),0) < ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0) THEN
ISNULL(DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)),0)
ELSE ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0)
END
ELSE 0
END WO_QUOTING_EXCUSABLE, --HYPOTHESIS: EXCUSABLE OTHER THAN QUOTE ARE MOSTLY LINLED WITH DISCREPENCIES ON INCOMING UNIT (THUS ALLOCATED AGAINST QUOTING TIME)
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN
ISNULL(WOS.WQ_EXCUSABLE_DELAY,0)
+
CASE WHEN ISNULL(DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)),0) < ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0) THEN
ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0) - ISNULL(DATEDIFF(DAY,WOS.ENTRY_DATE, ISNULL(WOS.QUOTE_SENT_OVERRIDE, WOS.FIRST_QUOTE_SENT)),0)
ELSE 0
END
END WO_AFTER_QUOTING_EXCUSABLE, --HYPOTHESIS: EXCUSABLE OTHER THAN QUOTE ARE MOSTLY LINLED WITH DISCREPENCIES ON INCOMING UNIT (THUS ALLOCATED AGAINST QUOTING TIME)
WOS.SHIP_DATE,
WOS.TAT_STOP_DATE_V2 TAT_STOP_DATE,
WOS.TAT_STOP_DATE_CUST_V2 TAT_STOP_DATE_CUST,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND NOT ((EXCHANGE_TYPE_CODE=5) AND (EXCHANGE_DATE IS NOT NULL)) THEN
DATEDIFF(day,WOS.CLOSE_DATE_ORIG, WOS.TAT_STOP_DATE_CUST_V2) - ISNULL(WOS.SHIPPING_EXCUSABLE_DELAY_V2,0)
ELSE 0
END SHIPPING_TAT, --SHIP_DATE CHANGED TO TAT_STOP_DATE_CUST_V2
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN ISNULL(WOS.SHIPPING_EXCUSABLE_DELAY_V2,0)
ELSE 0
END EXCUSABLE_DELAY_SH,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN
DATEDIFF(DAY, WOS.TAT_START_DATE,WOS.TAT_STOP_DATE_CUST_V2)
- ISNULL(WOS.RC_EXCUSABLE_DELAY_V2,0) - ISNULL(WOS.SHIPPING_EXCUSABLE_DELAY_V2,0)
- ISNULL(WOS.WQ_EXCUSABLE_DELAY,0) - ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0)
ELSE 0
END SPT_CUSTOMER,
WOS.TAT_CORRECTION MANUAL_TAT_ADJUSTMENT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN WOS.NET_TAT_V2
ELSE 0
END SPT, --USES TAT_STOP_DATE_V2 NOT STOP_DATE_CUST
WOS.INVC_DATE,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NULL) OR (WOS.TAT_STOP_DATE_CUST_V2 < WOS.TAT_START_DATE) THEN NULL
WHEN ( DATEDIFF(DAY, WOS.TAT_START_DATE,WOS.TAT_STOP_DATE_CUST_V2)
- ISNULL(WOS.RC_EXCUSABLE_DELAY_V2,0) - ISNULL(WOS.SHIPPING_EXCUSABLE_DELAY_V2,0)
- ISNULL(WOS.WQ_EXCUSABLE_DELAY,0) - ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0) ) <= ISNULL(WOS.CONTRACT_TAT,21) THEN 1
ELSE 0
END ON_TIME_CUSTOMER,
CASE WHEN (ISNULL(WOS.GROSS_TAT,0) - ISNULL(WOS.RC_EXCUSABLE_DELAY_V2,0) - ISNULL(WOS.WQ_EXCUSABLE_DELAY,0) - ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0) - ISNULL(WOS.SHIPPING_EXCUSABLE_DELAY_V2,0)) <= ISNULL(WOS.CONTRACT_TAT,21) THEN 1
ELSE 0
END ON_TIME, --USES TAT_STOP_DATE_V2 NOT STOP_DATE_CUST
CASE WHEN WOS.TAT_STOP_DATE_CUST_V2 IS NULL THEN NULL
WHEN DATEDIFF(WEEK, WOS.TAT_STOP_DATE_CUST_V2,GETDATE()) = 0 THEN 'W'
ELSE CONCAT('W-',RIGHT(CONCAT('0',DATEDIFF(WEEK, WOS.TAT_STOP_DATE_CUST_V2,GETDATE())),2))
END AS W_DIFF,
CASE WHEN WOS.TAT_STOP_DATE_CUST_V2 IS NULL THEN NULL
WHEN DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2,GETDATE()) = 0 THEN 'M'
ELSE CONCAT('M-',RIGHT(CONCAT('0',DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2,GETDATE())),2))
END AS M_DIFF,
CASE WHEN WOS.TAT_STOP_DATE_CUST_V2 IS NULL THEN NULL
WHEN DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2,GETDATE())=0 THEN 'Y'
WHEN DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2,GETDATE()) <= 12 AND DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2,GETDATE())>=1 THEN 'Y-1'
WHEN DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2,GETDATE()) <= 24 THEN 'Y-2'
ELSE 'Y-2 +'
END AS Y_DIFF,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN DATEDIFF(DAY,WOS.TAT_START_DATE, WOS.TAT_STOP_DATE_CUST_V2)
ELSE 0
END TAT_CUSTOMER,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) THEN WOS.GROSS_TAT
ELSE 0
END TAT, --USES TAT_STOP_DATE_V2 NOT STOP_DATE_CUST
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND (EXCHANGE_TYPE_CODE=5) AND (EXCHANGE_DATE IS NOT NULL) THEN 1
ELSE 0
END STANDARD_EXCHANGE_PROVIDED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND (WOS.CAA_DATE IS NOT NULL) THEN 1
ELSE 0
END CAA_DATE_USED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_PARTS.TAT > 0 THEN 1
ELSE 0
END CS_CUST_PARTS_USED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_PARTS.TAT > 0 THEN CS_PARTS.TAT
ELSE null
END CS_CUST_PARTS_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_AWT_APP.TAT > 0 THEN 1
ELSE 0
END CS_AWT_APP_USED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_AWT_APP.TAT > 0 THEN CS_AWT_APP.TAT
ELSE null
END CS_AWT_APP_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_HOLD.TAT > 0 THEN 1
ELSE 0
END CS_CUST_HOLD_USED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_HOLD.TAT > 0 THEN CS_HOLD.TAT
ELSE null
END CS_CUST_HOLD_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_DISC.TAT > 0 THEN 1
ELSE 0
END CS_DISC_USED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CS_DISC.TAT > 0 THEN CS_DISC.TAT
ELSE null
END CS_DISC_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND FIN_HOLD.TAT > 0 THEN 1
ELSE 0
END FIN_HOLD_USED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND FIN_HOLD.TAT > 0 THEN FIN_HOLD.TAT
ELSE null
END FIN_HOLD_TAT,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CAA_S.TAT > 0 THEN 1
ELSE 0
END CAA_S_USED,
CASE WHEN (WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL) AND (WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE) AND CAA_S.TAT > 0 THEN CAA_S.TAT
ELSE null
END CAA_S_TAT,
CASE
WHEN WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL THEN NULL
WHEN (DATEDIFF(DAY, WOS.TAT_START_DATE, GETDATE())
- ISNULL(WOS.RC_EXCUSABLE_DELAY_V2,0) - ISNULL(WOS.SHIPPING_EXCUSABLE_DELAY_V2,0)
- ISNULL(WOS.WQ_EXCUSABLE_DELAY,0) - ISNULL(WOS.WO_EXCUSABLE_DELAY_V2,0)
) <= ISNULL(WOS.CONTRACT_TAT,21) THEN 1
ELSE 0
END WIP_ON_TIME_CUSTOMER,
CASE
WHEN WOS.TAT_STOP_DATE_CUST_V2 IS NOT NULL THEN NULL
WHEN WOS.NET_TAT_V2 <= ISNULL(WOS.CONTRACT_TAT,21) THEN 1
ELSE 0
END WIP_ON_TIME
FROM BA_VIEW_WO_SUMMARY WOS
LEFT JOIN (SELECT PC1.PNM_AUTO_KEY, PC1.ATTRIBUTE_VALUE FROM BA_VIEW_PARTS_CLASSIFICATION PC1 WHERE PC1.UDA_DESCRIPTION='TECHNOLOGY') TECHNO ON TECHNO.PNM_AUTO_KEY=WOS.PNM_AUTO_KEY
LEFT JOIN (SELECT PC2.PNM_AUTO_KEY, PC2.ATTRIBUTE_VALUE FROM BA_VIEW_PARTS_CLASSIFICATION PC2 WHERE PC2.UDA_DESCRIPTION='PRODUCT GROUPS') PROD_GROUP ON PROD_GROUP.PNM_AUTO_KEY=WOS.PNM_AUTO_KEY
LEFT JOIN (SELECT PC3.PNM_AUTO_KEY, PC3.ATTRIBUTE_VALUE FROM BA_VIEW_PARTS_CLASSIFICATION PC3 WHERE PC3.UDA_DESCRIPTION='SUB GROUP') SUB_GROUP ON SUB_GROUP.PNM_AUTO_KEY=WOS.PNM_AUTO_KEY
LEFT JOIN (SELECT WO_NUMBER, WOO_AUTO_KEY, STATUS STATUS_NAME, SUM(TAT) TAT FROM BA_VIEW_WO_TIME_IN_STATUS WHERE BA_VIEW_WO_TIME_IN_STATUS.STATUS = 'PARTS SHORTAGE' GROUP BY WO_NUMBER, STATUS, WOO_AUTO_KEY) PART_SHORT ON WOS.WOO_AUTO_KEY=PART_SHORT.WOO_AUTO_KEY
LEFT JOIN (SELECT WO_NUMBER, WOO_AUTO_KEY, STATUS STATUS_NAME, SUM(TAT) TAT FROM BA_VIEW_WO_TIME_IN_STATUS WHERE BA_VIEW_WO_TIME_IN_STATUS.STATUS = 'CS CUST PARTS' GROUP BY WO_NUMBER, STATUS, WOO_AUTO_KEY) CS_PARTS ON WOS.WOO_AUTO_KEY=CS_PARTS.WOO_AUTO_KEY
LEFT JOIN (SELECT WO_NUMBER, WOO_AUTO_KEY, STATUS STATUS_NAME, SUM(TAT) TAT FROM BA_VIEW_WO_TIME_IN_STATUS WHERE BA_VIEW_WO_TIME_IN_STATUS.STATUS = 'CS CUST HOLD' GROUP BY WO_NUMBER, STATUS, WOO_AUTO_KEY) CS_HOLD ON WOS.WOO_AUTO_KEY=CS_HOLD.WOO_AUTO_KEY
LEFT JOIN (SELECT WO_NUMBER, WOO_AUTO_KEY, STATUS STATUS_NAME, SUM(TAT) TAT FROM BA_VIEW_WO_TIME_IN_STATUS WHERE BA_VIEW_WO_TIME_IN_STATUS.STATUS = 'CS DISCREPANCY' GROUP BY WO_NUMBER, STATUS, WOO_AUTO_KEY) CS_DISC ON WOS.WOO_AUTO_KEY=CS_DISC.WOO_AUTO_KEY
LEFT JOIN (SELECT WO_NUMBER, WOO_AUTO_KEY, STATUS STATUS_NAME, SUM(TAT) TAT FROM BA_VIEW_WO_TIME_IN_STATUS WHERE BA_VIEW_WO_TIME_IN_STATUS.STATUS = 'FIN HOLD' GROUP BY WO_NUMBER, STATUS, WOO_AUTO_KEY) FIN_HOLD ON WOS.WOO_AUTO_KEY=FIN_HOLD.WOO_AUTO_KEY
LEFT JOIN (SELECT WO_NUMBER, WOO_AUTO_KEY, STATUS STATUS_NAME, SUM(TAT) TAT FROM BA_VIEW_WO_TIME_IN_STATUS WHERE BA_VIEW_WO_TIME_IN_STATUS.STATUS = 'CS AWT APPROVAL' GROUP BY WO_NUMBER, STATUS, WOO_AUTO_KEY) CS_AWT_APP ON WOS.WOO_AUTO_KEY=CS_AWT_APP.WOO_AUTO_KEY
LEFT JOIN (SELECT WO_NUMBER, WOO_AUTO_KEY, STATUS STATUS_NAME, SUM(TAT) TAT FROM BA_VIEW_WO_TIME_IN_STATUS WHERE BA_VIEW_WO_TIME_IN_STATUS.STATUS = 'CAA' GROUP BY WO_NUMBER, STATUS, WOO_AUTO_KEY) CAA_S ON WOS.WOO_AUTO_KEY=CAA_S.WOO_AUTO_KEY
LEFT JOIN (SELECT MFG_CODE, DESCRIPTION FROM MANUFACTURER) MANUF ON MANUF.MFG_CODE=WOS.MFG_CODE
WHERE NOT(CUSTOMER_NAME LIKE 'AERO%GIES%' AND (WON_AUTO_KEY=9 OR WON_AUTO_KEY=11))
AND NOT(CUSTOMER_NAME LIKE 'BARFIELD AERO%' AND (WON_AUTO_KEY=9 OR WON_AUTO_KEY=11))
AND NOT(CUSTOMER_NAME LIKE '%PRECISION%ELE%' AND WON_AUTO_KEY=12)
AND NOT(CUSTOMER_NAME LIKE '%BARFIELD%INC%' AND (WON_AUTO_KEY=10 OR WON_AUTO_KEY=13 OR WON_AUTO_KEY=14))
AND WOS.TEARDOWN = 'N'
AND STATUS <> 'CANCELLED'
AND WOS.WO_NUMBER NOT LIKE '%-%' AND WOS.WO_NUMBER NOT LIKE '%_CORE%'
AND WOS.WO_NUMBER LIKE 'WO%' AND WOS.WO_NUMBER NOT LIKE '%ADMIN%'
AND SHOP_TYPE IN ('IN-HOUSE','SUB','GSTE')
AND (WOS.TAT_STOP_DATE_CUST_V2 IS NULL) OR (DATEDIFF(MONTH, WOS.TAT_STOP_DATE_CUST_V2,GETDATE())<=36 AND WOS.TAT_STOP_DATE_CUST_V2 >= WOS.TAT_START_DATE AND WOS.TAT_STOP_DATE_CUST_V2<=GETDATE())
GROUP BY WOS.WO_NUMBER,
WOS.WO_TYPE,
WOS.ACCT_COMPANY,
WOS.DEPT_NAME,
WOS.WON_AUTO_KEY,
WOS.SHOP_TYPE,
WOS.ENTRY_DATE,
WOS.MFG_CODE,
TECHNO.ATTRIBUTE_VALUE,
PROD_GROUP.ATTRIBUTE_VALUE,
SUB_GROUP.ATTRIBUTE_VALUE,
WOS.PN,
WOS.DESCRIPTION,
MANUF.DESCRIPTION,
WOS.SERIAL_NUMBER,
WOS.CUSTOMER_NAME,
WOS.CUSTOMER_PO,
WOS.PBH_CUSTOMER,
CONTRACT_TYPE,
WOS.WORK_REQUESTED,
WOS.WORK_PERFORMED,
WOS.STATUS,
WOS.SO_NUMBER,
WOS.EXCHANGE_DATE,
WOS.EXCHANGE_TYPE_CODE,
WOS.RO_NUMBER,
WOS.LAST_RO,
WOS.CONTRACT_TAT,
WOS.RECEIVED_DATE,
WOS.DUE_DATE,
WOS.RC_EXCUSABLE_DELAY_V2,
WOS.DATE_MOVED_TO_QUOTING,
WOS.FIRST_QUOTE_SENT,
WOS.LAST_QUOTE_SENT,
WOS.QUOTE_SENT_OVERRIDE,
WOS.LAST_QUOTE_APPROVED,
WOS.LAST_QUOTE_SENT,
WOS.QUOTE_SENT_OVERRIDE,
WOS.LAST_QUOTE_APPROVED,
WOS.QUOTE_APPROVED_OVERRIDE,
WOS.RELEASE_DATE,
WOS.CAA_DATE,
WOS.CLOSE_DATE_ORIG,
WOS.CLOSE_DATE,
WOS.SHIP_DATE,
WOS.INVC_DATE,
WOS.SHIPPING_ORDER,
WOS.WQ_EXCUSABLE_DELAY,
WOS.WO_EXCUSABLE_DELAY_V2,
WOS.SHIPPING_EXCUSABLE_DELAY_V2,
WOS.TAT_START_DATE,
WOS.TAT_STOP_DATE_V2,
WOS.TAT_STOP_DATE_CUST_V2,
WOS.NET_TAT_V2,
WOS.TAT_CORRECTION,
WOS.GROSS_TAT,
PART_SHORT.TAT,
CS_PARTS.TAT,
CS_AWT_APP.TAT,
CS_HOLD.TAT,
CS_DISC.TAT,
FIN_HOLD.TAT,
CAA_S.TAT
) data_query
LEFT JOIN BA_VIEW_WO_PROFITABILITY PROFIT ON PROFIT.WORK_ORDER = data_query.WO_NUMBER
GROUP BY data_query.WO_NUMBER,
data_query.WO_TYPE,
data_query.ACCT_COMPANY,
data_query.DEPT_NAME,
data_query.LOCATION,
data_query.SHOP_TYPE,
data_query.ENTRY_DATE,
data_query.MFG_CODE,
data_query."TECHNOLOGY",
data_query."PRODUCT GROUP",
data_query."SUB GROUP",
data_query.PN,
data_query.DESCRIPTION,
data_query.OEM,
data_query.SERIAL_NUMBER,
data_query.CUSTOMER_NAME,
data_query.CUSTOMER_PO,
data_query.PBH_CUSTOMER,
data_query.CONTRACT_TYPE,
data_query.WORK_REQUESTED,
data_query.WORK_PERFORMED,
data_query.STATUS,
data_query.SO_NUMBER,
data_query.EXCHANGE_DATE,
data_query.EXCHANGE_TYPE_CODE,
data_query.RO_NUMBER,
data_query.LAST_RO,
data_query.CONTRACT_TAT,
data_query.RECEIVED_DATE,
data_query.DUE_DATE,
data_query.DATE_MOVED_TO_QUOTING,
data_query.FIRST_QUOTE_SENT,
data_query.LAST_QUOTE_SENT,
data_query.QUOTE_SENT_OVERRIDE,
data_query.LAST_QUOTE_APPROVED,
data_query.QUOTE_APPROVED_OVERRIDE,
data_query.RELEASE_DATE,
data_query.CAA_DATE,
data_query.CLOSE_DATE_ORIG,
data_query.CLOSE_DATE,
data_query.SHIP_DATE,
data_query.INVC_DATE,
data_query.SHIPPING_ORDER,
data_query.TAT_START_DATE,
data_query.TAT_STOP_DATE,
data_query.TAT_STOP_DATE_CUST,
data_query.W_DIFF,
data_query.M_DIFF,
data_query.Y_DIFF,
data_query.RECEIVING_TAT,
data_query.INCONSISTENT_RECEIVING_DATE,
data_query.QUOTING_TAT,
data_query.CORRECTED_QUOTE_DATE,
data_query.CORRECTED_QUOTE_APPROVED_DATE,
data_query.TAT_CUSTOMER,
data_query.TAT,
data_query.STANDARD_EXCHANGE_PROVIDED,
data_query.CAA_DATE_USED,
data_query.SHOP_REPAIR_TAT,
data_query.PART_SHORTAGE_TAT,
data_query.CS_CUST_PARTS_USED,
data_query.CS_CUST_PARTS_TAT,
data_query.CS_AWT_APP_TAT,
data_query.CS_AWT_APP_USED,
data_query.CS_CUST_HOLD_TAT,
data_query.CS_CUST_HOLD_USED,
data_query.CS_DISC_TAT,
data_query.CS_DISC_USED,
data_query.FIN_HOLD_TAT,
data_query.FIN_HOLD_USED,
data_query.CAA_S_TAT,
data_query.CAA_S_USED,
data_query.EXCUSABLE_DELAY_WO,
data_query.WO_QUOTING_EXCUSABLE,
data_query.WO_AFTER_QUOTING_EXCUSABLE,
data_query.EXCUSABLE_DELAY_RC,
data_query.EXCUSABLE_DELAY_SH,
data_query.SHIPPING_TAT,
data_query.SPT_CUSTOMER,
data_query.SPT,
data_query.MANUAL_TAT_ADJUSTMENT,
data_query.ON_TIME_CUSTOMER,
data_query.ON_TIME,
data_query.WIP_ON_TIME_CUSTOMER,
data_query.WIP_ON_TIME
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.