Maybe it's just me, but I dislike relying on a huge query to do all the math and processing that my code should probably do. I'd like to get opinions on the sanity of the following query (yes, this is just one query I'm trying to parse), versus breaking it up into smaller queries and doing some processing in code:
SELECT Installed.Division Division, Installed.Location, IF(WO.Total_Sell_BAS IS NULL, 0, WO.Total_Sell_BAS) + IF(Installed.Total_Sell_BAS IS NULL, 0, Installed.Total_Sell_BAS) + IF(CSP.Total_Sell_BAS IS NULL, 0, CSP.Total_Sell_BAS) AS Total_Sell_BAS, IF(WO.Total_GM_BAS IS NULL, 0, WO.Total_GM_BAS) + IF(Installed.Total_GM_BAS IS NULL, 0, Installed.Total_GM_BAS) + IF(CSP.Total_GM_BAS IS NULL, 0, CSP.Total_GM_BAS)AS Total_GM_BAS, IF(WO.Total_Sell_Fire IS NULL, 0, WO.Total_Sell_Fire) + IF(Installed.Total_Sell_Fire IS NULL, 0, Installed.Total_Sell_Fire) + IF(CSP.Total_Sell_Fire IS NULL, 0, CSP.Total_Sell_Fire) AS Total_Sell_Fire, IF(WO.Total_GM_Fire IS NULL, 0, WO.Total_GM_Fire) + IF(Installed.Total_GM_Fire IS NULL, 0, Installed.Total_GM_Fire) + IF(CSP.Total_GM_Fire IS NULL, 0, CSP.Total_GM_Fire) AS Total_GM_Fire, IF(WO.Total_Sell_Sec IS NULL, 0, WO.Total_Sell_Sec) + IF(Installed.Total_Sell_Sec IS NULL, 0, Installed.Total_Sell_Sec) + IF(CSP.Total_Sell_Sec IS NULL, 0, CSP.Total_Sell_Sec) AS Total_Sell_Sec, IF(WO.Total_GM_Sec IS NULL, 0, WO.Total_GM_Sec) + IF(Installed.Total_GM_Sec IS NULL, 0, Installed.Total_GM_Sec) + IF(CSP.Total_GM_Sec IS NULL, 0, CSP.Total_GM_Sec) AS Total_GM_Sec, IF(WO.Total_Sell_Other IS NULL, 0, WO.Total_Sell_Other) + IF(Installed.Total_Sell_Other IS NULL, 0, Installed.Total_Sell_Other) + IF(CSP.Total_Sell_Other IS NULL, 0, CSP.Total_Sell_Other) AS Total_Sell_Other, IF(WO.Total_GM_Other IS NULL, 0, WO.Total_GM_Other) + IF(Installed.Total_GM_Other IS NULL, 0, Installed.Total_GM_Other) + IF(CSP.Total_GM_Other IS NULL, 0, CSP.Total_GM_Other) AS Total_GM_Other, IF(WO.Total_Sell IS NULL, 0, WO.Total_Sell) + IF(Installed.Total_Sell IS NULL, 0, Installed.Total_Sell) + IF(CSP.Total_Sell IS NULL, 0, CSP.Total_Sell) AS Total_Sell, IF(WO.Total_GM IS NULL, 0, WO.Total_GM) + IF(Installed.Total_GM IS NULL, 0, Installed.Total_GM) + IF(CSP.Total_GM IS NULL, 0, CSP.Total_GM) AS Total_GM FROM (SELECT SUBSTRING(BR_CSP_Bookings.Contract_Number, 1, 3) Division, SUM(IF(Contract_Type RLIKE '[A-Z]B', Contract_Amount, 0)) Total_Sell_BAS, SUM(IF(Contract_Type RLIKE '[A-Z]B', Contract_Amount - Contract_Estimate, 0)) Total_GM_BAS, SUM(IF(Contract_Type RLIKE '[A-Z]F', Contract_Amount, 0)) Total_Sell_Fire, SUM(IF(Contract_Type RLIKE '[A-Z]F', Contract_Amount - Contract_Estimate, 0)) Total_GM_Fire, SUM(IF(Contract_Type RLIKE '[A-Z]S', Contract_Amount, 0)) Total_Sell_Sec, SUM(IF(Contract_Type RLIKE '[A-Z]S', Contract_Amount - Contract_Estimate, 0)) Total_GM_Sec, SUM(IF(Contract_Type RLIKE '[A-Z]M', Contract_Amount, 0)) Total_Sell_Other, SUM(IF(Contract_Type RLIKE '[A-Z]M', Contract_Amount - Contract_Estimate, 0)) Total_GM_Other, SUM(IF(Contract_Type RLIKE '[A-Z][BFMS]', Contract_Amount, 0)) Total_Sell, SUM(IF(Contract_Type RLIKE '[A-Z][BFMS]', Contract_Amount - Contract_Estimate, 0)) Total_GM FROM BR_CSP_Bookings LEFT JOIN BR_All_CSP USING (Contract_Number, Site_ID) WHERE Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25' GROUP BY SUBSTRING(BR_CSP_Bookings.Contract_Number, 1, 3))AS CSP RIGHT JOIN ((SELECT SUBSTRING(Division, 2, 3) Division, SUM(IF(Division RLIKE '[0-9]{4}E', Total_Revenue, 0)) Total_Sell_BAS, SUM(IF(Division RLIKE '[0-9]{4}E', Total_Revenue - Total_Cost, 0)) Total_GM_BAS, SUM(IF(Division RLIKE '[0-9]{4}F', Total_Revenue, 0)) Total_Sell_Fire, SUM(IF(Division RLIKE '[0-9]{4}F', Total_Revenue - Total_Cost, 0)) Total_GM_Fire, SUM(IF(Division RLIKE '[0-9]{4}G', Total_Revenue, 0)) Total_Sell_Sec, SUM(IF(Division RLIKE '[0-9]{4}G', Total_Revenue - Total_Cost, 0)) Total_GM_Sec, SUM(IF(Division RLIKE '[0-9]{4}H', Total_Revenue, 0)) Total_Sell_Other, SUM(IF(Division RLIKE '[0-9]{4}H', Total_Revenue - Total_Cost, 0)) Total_GM_Other, SUM(IF(Division RLIKE '[0-9]{4}[EFGH]', Total_Revenue, 0)) Total_Sell, SUM(IF(Division RLIKE '[0-9]{4}[EFGH]', Total_Revenue - Total_Cost, 0)) Total_GM FROM BR_All_WO WHERE Complete_Date >= '2009-03-01' AND Complete_Date <= '2009-03-25' GROUP BY SUBSTRING(Division, 2, 3))AS WO RIGHT JOIN (SELECT BR_Bookings.Division, Plan_Goals.Location, SUM(if(Job_Number RLIKE '[0-9]{3}[BM][a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract, 0)) Total_Sell_BAS, SUM(if(Job_Number RLIKE '[0-9]{3}F[a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract, 0)) Total_Sell_Fire, SUM(if(Job_Number RLIKE '[0-9]{3}S[a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract, 0)) Total_Sell_Sec, SUM(if(Job_Number NOT RLIKE '[0-9]{3}[BMFS][a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract, 0)) Total_Sell_Other, SUM(if(Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract, 0)) Total_Sell, SUM(if(Job_Number RLIKE '[0-9]{3}[BM][a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract - Total_Est, 0)) Total_GM_BAS, SUM(if(Job_Number RLIKE '[0-9]{3}F[a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract - Total_Est, 0)) Total_GM_Fire, SUM(if(Job_Number RLIKE '[0-9]{3}S[a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract - Total_Est, 0)) Total_GM_Sec, SUM(if(Job_Number NOT RLIKE '[0-9]{3}[BMFS][a-z][0-9]{4}' AND Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract - Total_Est, 0)) Total_GM_Other, SUM(if(Book_Date >= '2009-03-01' AND Book_Date <= '2009-03-25', Revised_Contract - Total_Est, 0)) Total_GM FROM BR_Bookings LEFT JOIN Plan_Goals ON BR_Bookings.Division = Plan_Goals.Division WHERE BR_Bookings.Division != 0 GROUP BY BR_Bookings.Division) AS Installed ON WO.Division = Installed.Division) ON CSP.Division = Installed.Division