访问SQL报告(初学者)

时间:2017-06-01 16:14:50

标签: sql excel ms-access

我知道您可以在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

所以这给了我青年部门顶级子类的销售。

一些主要问题:

  1. 如何按项目细分?
  2. 如何显示多个类和子类?
  3. 如何显示前70%?
  4. 一次报告多个部门的最佳方法是什么?
  5. 我附上了我的目标一般报告的图片。

    • 部门示例:男孩和女孩
    • 课程示例:上衣
    • 子类示例:短,长,时尚

    enter image description here

1 个答案:

答案 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(...)控件。