我知道您可以在Access中执行此操作,但我不确定如何解决此问题。我可以使用Excel中的数据透视表轻松获取我想要的信息,但我正在尝试学习如何使用Access。
所以我有一个大型数据集,包含Fields:
我想在每个子类中找到构成销售额前70%的项目。
在Excel中,这很容易。我在过滤器中有部门,我有Class,后跟Subclass,后跟 Rows 中的Item,以及值中的Sales of Sum。按升序排序并使用基本数学来找到前70%。
在Access中,我确信它也很简单。我还没有走得太远:
SELECT subclass, Sum[Sales]
FROM Table
WHERE Department = Youth
Order By Sum[Sales] Desc
所以这给了我青年部门顶级子类的销售。
一些主要问题:
答案 0 :(得分:0)
考虑加入两个不同级别的聚合,在项目级别和子类级别加入:
项目汇总查询
SELECT department, class, subclass, item, Sum(Sales) As SumSales
FROM myTable
GROUP BY department, class, subclass, item
子类聚合查询
SELECT department, class, subclass, Sum(Sales) As SumSales
FROM myTable
GROUP BY department, class, subclass
加入两个聚合的查询
SELECT i.department, i.class, i.subclass, s.SumSales As SubClassSales,
i.item, i.SumSales As ItemSumSales
FROM itemAggQ AS i
INNER JOIN subclassAggQ s
ON i.department = s.department AND i.class = s.class AND i.subclass = s.subclass
WHERE (i.SumSales / s.SumSales) >= 0.7
ORDER BY i.department, i.class, s.SumSales DESC, i.SumSales Desc
最后,针对您的特定布局,构建一个以连接查询作为其记录源的报表,并在组页眉/页脚中使用grouping/sorting和=SUM(...)
控件。