2014-02-21 61 views
-2

我尝试总结和圆形的所有结果从interview_sumother_sumedu_attain2_sumexperience2_sumtrainings2_sumeligibility2_sum关于全面功能问题

用这行代码:但是当我运行查询时,我得到了一个错误在这一行....任何人都可以帮助我什么是错的?

ROUND(SUM(interview_sum,other_sum,edu_attain2_sum,experience2_sum,trainings2_sum,eligibility2_sum)) AS final_total_sum, 

当前查询:

ROUND((SELECT SUM(t2.inttotal) 
    FROM app_interview2 AS t2 
    WHERE t2.atic = t.atic)/7,1) 
    AS interview_sum, 

    ROUND((SELECT SUM(o2.ototal) 
    FROM other_app2 AS o2 
    WHERE o2.oaic = t.atic)/7,1) 
    AS other_sum, 

    ROUND((SELECT SUM(s1.edu_attain2) 
    FROM qual_stan2 AS s1 
    WHERE s1.oaic2 = t.atic)/7,1) 
    AS edu_attain2_sum, 

    ROUND((SELECT SUM(s2.experience2) 
    FROM qual_stan2 AS s2 
    WHERE s2.oaic2 = t.atic)/7,1) 
    AS experience2_sum, 

    ROUND((SELECT SUM(s3.trainings2) 
    FROM qual_stan2 AS s3 
    WHERE s3.oaic2 = t.atic)/7,1) 
    AS trainings2_sum, 

    ROUND((SELECT SUM(s4.eligibility2) 
    FROM qual_stan2 AS s4 
    WHERE s4.oaic2 = t.atic)/7,1) 
    AS eligibility2_sum, 

    ROUND(SUM(interview_sum,other_sum,edu_attain2_sum,experience2_sum,trainings2_sum,eligibility2_sum)) AS final_total_sum, 

    t.atid, 
    t.atic, 
    t.atname, 
    t.region, 
    t.town, 
    t.uniq_id, 
    t.position, 
    t.salary_grade, 
    t.salary 
    FROM app_interview2 AS t 
    WHERE t.uniq_id = 'ADAS3-1493-2013' 
    GROUP BY t.atname HAVING COUNT(DISTINCT t.atic) 
+3

...和错误是...?! – deceze

+1

您只能在“SUM”中放置一个列名。如果你想添加两列,使用'+'。 – Barmar

+0

@Barmar事情是他们不columbms他们是从以前的总和结果的标题。 – user3311499

回答

1

只需使用+

SELECT *, 
    ROUND(interview_sum + 
      other_sum + 
      edu_attain2_sum + 
      experience2_sum + 
      trainings2_sum + 
      eligibility2_sum) AS final_total_sum 
FROM (
    SELECT 
     ROUND((SELECT SUM(t2.inttotal) 
     FROM app_interview2 AS t2 
     WHERE t2.atic = t.atic)/7,1) 
     AS interview_sum, 

     ROUND((SELECT SUM(o2.ototal) 
     FROM other_app2 AS o2 
     WHERE o2.oaic = t.atic)/7,1) 
     AS other_sum, 

     ROUND((SELECT SUM(s1.edu_attain2) 
     FROM qual_stan2 AS s1 
     WHERE s1.oaic2 = t.atic)/7,1) 
     AS edu_attain2_sum, 

     ROUND((SELECT SUM(s2.experience2) 
     FROM qual_stan2 AS s2 
     WHERE s2.oaic2 = t.atic)/7,1) 
     AS experience2_sum, 

     ROUND((SELECT SUM(s3.trainings2) 
     FROM qual_stan2 AS s3 
     WHERE s3.oaic2 = t.atic)/7,1) 
     AS trainings2_sum, 

     ROUND((SELECT SUM(s4.eligibility2) 
     FROM qual_stan2 AS s4 
     WHERE s4.oaic2 = t.atic)/7,1) 
     AS eligibility2_sum, 
     t.atid, 
     t.atic, 
     t.atname, 
     t.region, 
     t.town, 
     t.uniq_id, 
     t.position, 
     t.salary_grade, 
     t.salary 
    FROM app_interview2 AS t 
    WHERE t.uniq_id = 'ADAS3-1493-2013' 
    GROUP BY t.atname 
    HAVING COUNT(DISTINCT t.atic)) subq 
+0

但我得到了一个错误([Err] 1054-'字段列表'中未知列'interview_sum') – user3311499

+0

是不是你在问题的第二部分显示的子查询中的别名之一? – Barmar

+0

如果您发布整个查询,我可能会清理它。我假设你的其余部分是可以的,你只需要知道如何编写这一部分。 – Barmar

1

SUM只接受单个表达式作为参数。你需要做的:

SUM(field1 + field2 + field3 + ....) 
+1

他不需要SUM,他已经用它来计算字段。 – Barmar

+0

无关紧要 - 因为无论如何都使用了SUM(),所以他的SQL完全被破坏了。 –

+0

@Marc B如果你仔细看看我的帖子和我的查询......我想添加的不是字段......这些是我的其他结果的标题。 – user3311499