From 4db0e8dd14b59aa9d432db51ad6a289b54ae3d55 Mon Sep 17 00:00:00 2001 From: dtookey Date: Wed, 20 Apr 2022 10:37:47 -0400 Subject: [PATCH] removed the where statement for @soil_techs in contributions.sql. I have a script on the company directory that updates a Google sheet with all the dept/division info in it. I think we'll do a join on the data in order to constrain it inside Datastudio. --- src/sql/0-run-first/1-sanitize_init.sql | 45 ++++++++++++--- src/sql/0-run-first/contributions.sql | 75 +++++++++++++++---------- 2 files changed, 82 insertions(+), 38 deletions(-) diff --git a/src/sql/0-run-first/1-sanitize_init.sql b/src/sql/0-run-first/1-sanitize_init.sql index 601ad1d..ecb0948 100644 --- a/src/sql/0-run-first/1-sanitize_init.sql +++ b/src/sql/0-run-first/1-sanitize_init.sql @@ -3,16 +3,43 @@ DROP TABLE IF EXISTS tokens; CREATE OR REPLACE INDEX billing_refnum ON billing (refNumber); -- noinspection SqlWithoutWhere -UPDATE users SET hash = ''; +UPDATE users +SET hash = ''; -UPDATE project_lifecycle SET new_value = '+CREATED', changed_column = 'status' WHERE changed_column = 'created'; -DELETE FROM project_lifecycle WHERE project_number = 'EVENT'; +UPDATE project_lifecycle +SET new_value = '+CREATED', + changed_column = 'status' +WHERE changed_column = 'created'; +DELETE +FROM project_lifecycle +WHERE project_number = 'EVENT'; -UPDATE billing set accepted_date = accepted_date - INTERVAL 4 HOUR, line_created = line_created - INTERVAL 4 HOUR; -UPDATE dispatch SET date_dispatched = date_dispatched - INTERVAL 4 HOUR; -UPDATE project_comments set timestamp = timestamp - INTERVAL 4 HOUR; -UPDATE project_lifecycle SET timestamp = timestamp - INTERVAL 4 HOUR; +UPDATE billing +set accepted_date = accepted_date - INTERVAL 4 HOUR, + line_created = line_created - INTERVAL 4 HOUR; +UPDATE dispatch +SET date_dispatched = date_dispatched - INTERVAL 4 HOUR; +UPDATE project_comments +set timestamp = timestamp - INTERVAL 4 HOUR; +UPDATE project_lifecycle +SET timestamp = timestamp - INTERVAL 4 HOUR; -ALTER TABLE project_lifecycle ADD COLUMN id INT AUTO_INCREMENT KEY FIRST; +ALTER TABLE project_lifecycle + ADD COLUMN id INT AUTO_INCREMENT KEY FIRST; CREATE OR REPLACE INDEX lifecycle_timestamp on project_lifecycle (timestamp); -CREATE OR REPLACE INDEX lifecycle_newval on project_lifecycle (new_value); \ No newline at end of file +CREATE OR REPLACE INDEX lifecycle_newval on project_lifecycle (new_value); + + +######### technician categories ############## + +CREATE OR REPLACE TABLE technician_category AS +SELECT DISTINCT users.email, + CONCAT(SUBSTR(ap.refnum, 1, 3), ' - ', + IF(ap.proj_type = 'Warranty', 'Structural', ap.proj_type)) AS flavor, + count(email) AS count +FROM users + INNER JOIN dispatch d ON users.pkey = d.dispatched_to + INNER JOIN all_projects ap ON d.project_fkey = ap.refnum +#where date_dispatched between NOW() - INTERVAL 180 DAY AND NOW() +GROUP BY flavor, email +ORDER BY count DESC; diff --git a/src/sql/0-run-first/contributions.sql b/src/sql/0-run-first/contributions.sql index b2ee090..0fd1a44 100644 --- a/src/sql/0-run-first/contributions.sql +++ b/src/sql/0-run-first/contributions.sql @@ -1,5 +1,7 @@ DROP TABLE IF EXISTS engineer_contributions; -DROP TABLE IF EXISTS rdu_soil_contributions; + +#########################Engineer Contributions######################################################################## + CREATE TABLE engineer_contributions AS SELECT CONCAT(users.lname, ', ', users.fname) AS `Engineer`, @@ -18,6 +20,44 @@ FROM users WHERE project_lifecycle.new_value IN ('+SEALED') AND users.priv & POW(2, 25) > 0; + +ALTER TABLE engineer_contributions + ADD COLUMN IF NOT EXISTS id INT AUTO_INCREMENT KEY FIRST; + +#https://stackoverflow.com/a/9639548 +DELETE +FROM engineer_contributions +WHERE id IN (SELECT bad_rows.id + FROM engineer_contributions AS bad_rows + INNER JOIN (SELECT engineer_contributions.`Project Number`, MAX(id) as min_id + FROM engineer_contributions + GROUP BY engineer_contributions.`Project Number` + HAVING count(*) > 1) AS good_rows + ON good_rows.`Project Number` = + bad_rows.`Project Number` + AND good_rows.min_id <> bad_rows.id); + +ALTER TABLE engineer_contributions + DROP COLUMN IF EXISTS id; + +#########################Soil Contributions############################################################################# +DROP TABLE IF EXISTS rdu_soil_contributions; +BEGIN + + # this is where we put the 'whitelist' of soil techs. this is a very hands-on method that I dont' like + # we need to figure out a way to pull this info automatically + + SET @soil_techs = ( + 'sgrygoruk@JDSConsulting.net', + 'rnewton@JDSConsulting.net', + 'kbaker@JDSConsulting.net', + 'zputz@JDSConsulting.net', + 'kgleisner@JDSConsulting.net', + 'hfox@JDSConsulting.net', + 'rmckey@JDSConsulting.net', + 'csmith@JDSConsulting.net' + ); + CREATE TABLE rdu_soil_contributions AS SELECT CONCAT(users.lname, ', ', users.fname) AS `Engineer`, project_lifecycle.project_number AS `Project Number`, @@ -32,36 +72,13 @@ FROM users INNER JOIN all_projects ap on project_lifecycle.project_number = ap.refnum INNER JOIN contacts on ap.contact_fkey = contacts.pkey INNER JOIN clients on contacts.cl_fkey = clients.pkey -WHERE project_lifecycle.new_value IN ('+READY_FOR_INITIAL_REVIEW') - AND users.email in ( - 'sgrygoruk@JDSConsulting.net', - 'rnewton@JDSConsulting.net', - 'kbaker@JDSConsulting.net', - 'zputz@JDSConsulting.net', - 'kgleisner@JDSConsulting.net', - 'hfox@JDSConsulting.net', - 'rmckey@JDSConsulting.net', - 'csmith@JDSConsulting.net' - ); +WHERE project_lifecycle.new_value IN ('+READY_FOR_REVIEW'); -ALTER TABLE engineer_contributions - ADD COLUMN IF NOT EXISTS id INT AUTO_INCREMENT KEY FIRST; ALTER TABLE rdu_soil_contributions ADD COLUMN IF NOT EXISTS id INT AUTO_INCREMENT KEY FIRST; -#https://stackoverflow.com/a/9639548 -DELETE -FROM engineer_contributions -WHERE id IN (SELECT bad_rows.id - FROM engineer_contributions AS bad_rows - INNER JOIN (SELECT engineer_contributions.`Project Number`, MAX(id) as min_id - FROM engineer_contributions - GROUP BY engineer_contributions.`Project Number` - HAVING count(*) > 1) AS good_rows - ON good_rows.`Project Number` = - bad_rows.`Project Number` - AND good_rows.min_id <> bad_rows.id); + DELETE FROM rdu_soil_contributions WHERE id IN (SELECT bad_rows.id @@ -74,7 +91,7 @@ WHERE id IN (SELECT bad_rows.id bad_rows.`Project Number` AND good_rows.min_id <> bad_rows.id); -ALTER TABLE engineer_contributions - DROP COLUMN IF EXISTS id; ALTER TABLE rdu_soil_contributions - DROP COLUMN IF EXISTS id; \ No newline at end of file + DROP COLUMN IF EXISTS id; + +END \ No newline at end of file