目前我们正在建立一个数据库来跟踪不同工厂的污染物排放。现在需要一个查询,为我们提供有关相对数量的信息。不知怎的,我觉得这应该是直截了当的,但我在SQL中没有成功实现它。
我从一个返回以下字段的工作查询开始:
PRODUCTION_YEAR, COMPANY, PRODUCT_CATEGORY, POLLUTANT, TOTAL_EMISSIONS, SHARE
TOTAL_EMISSIONS包含特定年份和产品类别中每家公司的总排放量。 SHARE是一个计算字段,包含每个公司对该特定产品类别中该特定污染物的总排放量的贡献(作为一个分数)。
现在的任务是计算对每种污染物有贡献的工厂。我到了这里:
SELECT PRODUCTION_YEAR, POLLUTANT, PRODUCT_CATEGORY, Count(COMPANY)
FROM theQuery
GROUP BY PRODUCTION_YEAR, POLLUTANT, PRODUCT_CATEGORY;
然而,现在我们的客户想要更复杂的东西:只计算贡献95%排放量的最大污染者。在脚本中,我可能只是将每个类别中的污染百分比按升序排序,然后遍历数据集,总结份额并且仅在达到5%后才开始计数。在SQL中执行它,不知道。
我的第一步(向新查询添加SUM(SHARE)字段)已经导致错误(“表达式未包含在聚合函数中”,大致翻译,不知道该怎么做,因为所有表达式都确实包含在内)。甚至有一种方法可以在SQL查询中执行此操作,或者我是在浪费时间而且只是编写一些VBA会更好吗?
感谢您的任何意见!
最佳, 本
答案 0 :(得分:0)
Gord的方法(参见评论中的链接)适用于此任务。