INSERT IGNORE INTO dashboard_opportunity_stagestate (_opportunityID,_stage,_industry) SELECT _opportunityID,'Qualify',_industry FROM dashboard_opportunity_phase WHERE _becameS2DT>0 AND YEAR(_becameS1TS)>=2018
INSERT IGNORE INTO dashboard_opportunity_stagestate (_opportunityID,_stage,_industry) SELECT _opportunityID,'Solution Development',_industry FROM dashboard_opportunity_phase WHERE _becameS3DT>0 AND YEAR(_becameS1TS)>=2018
INSERT IGNORE INTO dashboard_opportunity_stagestate (_opportunityID,_stage,_industry) SELECT _opportunityID,'Solution Validation',_industry FROM dashboard_opportunity_phase WHERE _becameS4DT>0 AND YEAR(_becameS1TS)>=2018
INSERT IGNORE INTO dashboard_opportunity_stagestate (_opportunityID,_stage,_industry) SELECT _opportunityID,'Propose',_industry FROM dashboard_opportunity_phase WHERE _becameS5DT>0 AND YEAR(_becameS1TS)>=2018
INSERT IGNORE INTO dashboard_opportunity_stagestate (_opportunityID,_stage,_industry) SELECT _opportunityID,'Negotiate',_industry FROM dashboard_opportunity_phase WHERE _becameS6DT>0 AND YEAR(_becameS1TS)>=2018
INSERT IGNORE INTO dashboard_opportunity_stagestate (_opportunityID,_stage,_industry) SELECT _opportunityID,'At Contract',_industry FROM dashboard_opportunity_phase WHERE _becameS7DT>0 AND YEAR(_becameS1TS)>=2018
INSERT IGNORE INTO dashboard_opportunity_stagestate (_opportunityID,_stage,_industry) SELECT _opportunityID,'Contract Won',_industry FROM dashboard_opportunity_phase WHERE _becameS8DT>0 AND YEAR(_becameS1TS)>=2018
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID FROM dashboard_opportunity_phase WHERE _becameS8 = 1) o SET s._becameS8 = 1 WHERE s._opportunityID = o._opportunityID
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID FROM dashboard_opportunity WHERE _stage = 'Closed Lost') o SET s._becameClosedLost = 1 WHERE s._opportunityID = o._opportunityID
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS2DT - _becameS2DT '_velocity' FROM dashboard_opportunity_phase) o SET s._velocity = o._velocity WHERE s._opportunityID = o._opportunityID AND s._stage = 'Qualify' AND o._velocity>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS3DT - _becameS2DT '_ageStage' FROM dashboard_opportunity_phase) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Qualify' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS2DT '_daysToWon' FROM dashboard_opportunity_phase WHERE _becameS8 = 1) o SET s._daysToWon = o._daysToWon WHERE s._opportunityID = o._opportunityID AND s._stage = 'Qualify' AND o._daysToWon>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS2DT '_daysToLost' FROM dashboard_opportunity_phase WHERE _becameClosedLostDT > 0) o SET s._daysToLost = o._daysToLost WHERE s._opportunityID = o._opportunityID AND s._stage = 'Qualify' AND o._daysToLost>0 AND s._becameClosedLost > 0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS2DT '_ageStage' FROM dashboard_opportunity_phase WHERE _latestStage = 2 AND _becameClosedLostDT > 0) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Qualify' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS3DT - _becameS2DT '_velocity' FROM dashboard_opportunity_phase) o SET s._velocity = o._velocity WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Development' AND o._velocity>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS4DT - _becameS3DT '_ageStage' FROM dashboard_opportunity_phase) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Development' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS3DT '_daysToWon' FROM dashboard_opportunity_phase WHERE _becameS8 = 1) o SET s._daysToWon = o._daysToWon WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Development' AND o._daysToWon>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS3DT '_daysToLost' FROM dashboard_opportunity_phase WHERE _becameClosedLostDT > 0) o SET s._daysToLost = o._daysToLost WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Development' AND o._daysToLost>0 AND s._becameClosedLost > 0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS3DT '_ageStage' FROM dashboard_opportunity_phase WHERE _latestStage = 3 AND _becameClosedLostDT > 0) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Development' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS4DT - _becameS2DT '_velocity' FROM dashboard_opportunity_phase) o SET s._velocity = o._velocity WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Validation' AND o._velocity>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS5DT - _becameS4DT '_ageStage' FROM dashboard_opportunity_phase) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Validation' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS4DT '_daysToWon' FROM dashboard_opportunity_phase WHERE _becameS8 = 1) o SET s._daysToWon = o._daysToWon WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Validation' AND o._daysToWon>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS4DT '_daysToLost' FROM dashboard_opportunity_phase WHERE _becameClosedLostDT > 0) o SET s._daysToLost = o._daysToLost WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Validation' AND o._daysToLost>0 AND s._becameClosedLost > 0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS4DT '_ageStage' FROM dashboard_opportunity_phase WHERE _latestStage = 4 AND _becameClosedLostDT > 0) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Solution Validation' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS5DT - _becameS2DT '_velocity' FROM dashboard_opportunity_phase) o SET s._velocity = o._velocity WHERE s._opportunityID = o._opportunityID AND s._stage = 'Propose' AND o._velocity>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS6DT - _becameS5DT '_ageStage' FROM dashboard_opportunity_phase) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Propose' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS5DT '_daysToWon' FROM dashboard_opportunity_phase WHERE _becameS8 = 1) o SET s._daysToWon = o._daysToWon WHERE s._opportunityID = o._opportunityID AND s._stage = 'Propose' AND o._daysToWon>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS5DT '_daysToLost' FROM dashboard_opportunity_phase WHERE _becameClosedLostDT > 0) o SET s._daysToLost = o._daysToLost WHERE s._opportunityID = o._opportunityID AND s._stage = 'Propose' AND o._daysToLost>0 AND s._becameClosedLost > 0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS5DT '_ageStage' FROM dashboard_opportunity_phase WHERE _latestStage = 5 AND _becameClosedLostDT > 0) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Propose' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS6DT - _becameS2DT '_velocity' FROM dashboard_opportunity_phase) o SET s._velocity = o._velocity WHERE s._opportunityID = o._opportunityID AND s._stage = 'Negotiate' AND o._velocity>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS7DT - _becameS6DT '_ageStage' FROM dashboard_opportunity_phase) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Negotiate' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS6DT '_daysToWon' FROM dashboard_opportunity_phase WHERE _becameS8 = 1) o SET s._daysToWon = o._daysToWon WHERE s._opportunityID = o._opportunityID AND s._stage = 'Negotiate' AND o._daysToWon>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS6DT '_daysToLost' FROM dashboard_opportunity_phase WHERE _becameClosedLostDT > 0) o SET s._daysToLost = o._daysToLost WHERE s._opportunityID = o._opportunityID AND s._stage = 'Negotiate' AND o._daysToLost>0 AND s._becameClosedLost > 0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS6DT '_ageStage' FROM dashboard_opportunity_phase WHERE _latestStage = 6 AND _becameClosedLostDT > 0) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Negotiate' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS7DT - _becameS2DT '_velocity' FROM dashboard_opportunity_phase) o SET s._velocity = o._velocity WHERE s._opportunityID = o._opportunityID AND s._stage = 'At Contract' AND o._velocity>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS7DT '_ageStage' FROM dashboard_opportunity_phase) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'At Contract' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS7DT '_daysToWon' FROM dashboard_opportunity_phase WHERE _becameS8 = 1) o SET s._daysToWon = o._daysToWon WHERE s._opportunityID = o._opportunityID AND s._stage = 'At Contract' AND o._daysToWon>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS7DT '_daysToLost' FROM dashboard_opportunity_phase WHERE _becameClosedLostDT > 0) o SET s._daysToLost = o._daysToLost WHERE s._opportunityID = o._opportunityID AND s._stage = 'At Contract' AND o._daysToLost>0 AND s._becameClosedLost > 0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS7DT '_ageStage' FROM dashboard_opportunity_phase WHERE _latestStage = 7 AND _becameClosedLostDT > 0) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'At Contract' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameS8DT - _becameS2DT '_velocity' FROM dashboard_opportunity_phase) o SET s._velocity = o._velocity WHERE s._opportunityID = o._opportunityID AND s._stage = 'Contract Won' AND o._velocity>0
UPDATE dashboard_opportunity_stagestate s INNER JOIN (SELECT _opportunityID, _becameClosedLostDT - _becameS8DT '_ageStage' FROM dashboard_opportunity_phase WHERE _latestStage = 8 AND _becameClosedLostDT > 0) o SET s._ageStage = o._ageStage WHERE s._opportunityID = o._opportunityID AND s._stage = 'Contract Won' AND o._ageStage>0
UPDATE dashboard_opportunity_stagestate SET _ageOpp = _ageStage + _velocity