当对一个字段用sum函数时,其它字段要通过select显示出来,就必须加到Group By里。查了一下资料,见http://www.office-cn.net/offspace/html/47/n-2447.html,里面说:
当我们选不只一个栏位,且其中至少一个栏位有包含函数的运用时,我们就需要用到 GROUP BY 这个指令。在这个情况下,我们需要确定我们有 GROUP BY 所有其他的栏位。换句话说,除了有包括函数的栏位外,我 们都需要将其放在 GROUP BY 的子句中。 我用的是Access,如果有一个要显示的字段没有Group By,就会提示“试图执行的查询中不包含作为聚合函数一部分的特定表达式”,但如果把汇总之外的字段都Group By,显示出来的就不是我要的内容了。
当我们选不只一个栏位,且其中至少一个栏位有包含函数的运用时,我们就需要用到 GROUP BY 这个指令。在这个情况下,我们需要确定我们有 GROUP BY 所有其他的栏位。换句话说,除了有包括函数的栏位外,我 们都需要将其放在 GROUP BY 的子句中。 我用的是Access,如果有一个要显示的字段没有Group By,就会提示“试图执行的查询中不包含作为聚合函数一部分的特定表达式”,但如果把汇总之外的字段都Group By,显示出来的就不是我要的内容了。
SELECT Sum(基础表.金额) AS 金额之总计, 客户表.名称
FROM
(select * from 基础表 union select * from 历史表)基础表 INNER JOIN 客户表 ON 基础表.客户 = 客户表.编号
WHERE (((基础表.出发日)>#1/1/2009#) AND ((基础表.出发日)<#7/1/2009#))
GROUP BY 客户表.名称
ORDER BY Sum(基础表.金额) DESC;