AskSQLTeam
Ask SQLTeam Question
0 Posts |
Posted - 2007-01-29 : 10:18:13
|
Lee writes "How do I make this query more concise?/*Description: Generate % responded Yes for each one of thesurvey questions(column names)Goal: I will display the real time result of this query on a website using asp.net */CREATE TABLE chartcalc(Dept CHAR(15),Aller_yes DECIMAL(5,2),Aller_notsure DECIMAL(5,2),Aller_deno DECIMAL(5,2),Adv_yes DECIMAL(5,2),Adv_notsure DECIMAL(5,2),Adv_deno DECIMAL(5,2),HP_yes DECIMAL(5,2),HP_no DECIMAL(5,2),HP_na DECIMAL(5,2),HP_deno DECIMAL(5,2),Imm_all DECIMAL(5,2),Imm_part DECIMAL(5,2),Imm_none DECIMAL(5,2),Imm_na DECIMAL(5,2),Imm_deno DECIMAL(5,2),Vit_all DECIMAL(5,2),Vit_part DECIMAL(5,2),Vit_none DECIMAL(5,2),Vit_na DECIMAL(5,2),Vit_deno DECIMAL(5,2),Dia_yes DECIMAL(5,2),Dia_no DECIMAL(5,2),Dia_na DECIMAL(5,2),Dia_deno DECIMAL(5,2),);INSERT INTO chartcalc (Dept, Aller_yes, Aller_deno, Adv_yes, Adv_deno, HP_yes, HP_deno)SELECT Dept, COUNT(CASE WHEN Aller='Yes' THEN 1.0 ELSE null END)"AllerYes", COUNT(CASE WHEN Aller='Yes' or Aller='Not Sure' THEN 1.0 ELSE null End)"AllerDenominator", COUNT(CASE WHEN Adv_Rea='Yes' THEN 1.0 ELSE null END)"AdvYes", COUNT(CASE WHEN Adv_Rea='Yes' or Adv_Rea='Not Sure' THEN 1.0 ELSE null END)"AdvDenominator", COUNT(CASE WHEN HP='Yes' THEN 1.0 ELSE null END)"AdvYes", COUNT(CASE WHEN HP='Yes' or HP='No' THEN 1.0 ELSE null END)"HPDenominator" FROM chart_audit GROUP BY DeptCREATE TABLE chartaudit_result(Dept CHAR(15),Aller_p_yes DECIMAL(5,2),Adv_p_yes DECIMAL(5,2),HP_p_yes DECIMAL(5,2),);INSERT INTO chartaudit_resultSELECT Dept,Avg(Aller_yes/Aller_deno)*100,Avg(Adv_yes/Adv_deno)*100, Avg(HP_yes/HP_deno)*100 FROM chartcalc GROUP BY Dept" |
|