first round of billing.sql is finished. It runs a bit slow and it de-normalizes the data, but I think it's relatively 'safe'

master
dtookey 4 years ago
parent e3ee6e286d
commit 6d65d76fb2

@ -0,0 +1,37 @@
DROP FUNCTION IF EXISTS get_division_collapsed;
DROP FUNCTION IF EXISTS get_division;
DELIMITER /
CREATE FUNCTION get_division_collapsed(refnum VARCHAR(15)) RETURNS VARCHAR(35)
BEGIN
DECLARE type VARCHAR(35);
SET type = (SELECT proj_type FROM all_projects WHERE all_projects.refnum = refnum);
RETURN CONCAT(
SUBSTRING(refnum, 1, 3),
' - ',
IF(type = 'Warranty', 'Structural', type)
);
END
/
CREATE FUNCTION prettify_division(refnum VARCHAR(15), division VARCHAR(35)) RETURNS VARCHAR(35)
BEGIN
RETURN CONCAT(
SUBSTRING(refnum, 1, 3),
' - ',
IF(division = 'Warranty', 'Structural', division)
);
END
/
CREATE FUNCTION get_division(refnum VARCHAR(15)) RETURNS VARCHAR(35)
RETURN CONCAT(
SUBSTRING(refnum, 1, 3),
' - ',
(SELECT proj_type
from all_projects
where all_projects.refnum = refnum)
);
/
DELIMITER ;

@ -28,3 +28,4 @@ UNION
SELECT * FROM SRV2021;
CREATE UNIQUE INDEX ref_num ON all_projects(refnum);
CREATE INDEX project_flavor ON all_projects(proj_type);

@ -0,0 +1,15 @@
DROP TABLE IF EXISTS billing_report;
CREATE TABLE billing_report AS
SELECT pkey,
refNumber,
(SELECT all_projects.proj_type from all_projects where all_projects.refnum = refNumber) AS division,
line_created,
accepted_date,
(qty * default_price) AS fee,
invoice_accepted
FROM billing;
CREATE INDEX ref_num ON billing_report(refNumber);
UPDATE billing_report
SET division = prettify_division(refNumber, division);

@ -2,9 +2,7 @@ DROP TABLE IF EXISTS event_counts;
CREATE TABLE event_counts AS
SELECT DATE(timestamp) AS event_date,
(
SELECT CONCAT(SUBSTRING(all_projects.refnum, 1, 3), ' - ', IF(all_projects.proj_type = 'Warranty', 'Structural', all_projects.proj_type))
) AS division,
get_division_collapsed(project_number) AS division,
if(substring(new_value, 1, 1) = '+', 1, -1) AS event_count,
SUBSTRING(`new_value` FROM 2) AS flag
FROM project_lifecycle

Loading…
Cancel
Save