sql - 有没有办法使用 SQL 在 Microsoft Access 中添加/相乘聚合函数?
问题描述
我的目标是让我的 Access 查询为我做尽可能多的数学运算。有没有办法添加/多重(或在此原因中划分)聚合函数并在列中显示输出?
例子:
SELECT
SUM(dbo.tbl1.TYsales) AS TY, SUM(dbo.tbl1.LYsales) AS LY,
SUM(dbo.tbl1.TYsales) + SUM(dbo.tbl1.LYsales) AS [TY_LY],
SUM(dbo.tbl1.LYsales) + SUM(dbo.tbl1.YBLsales) AS [LY_YBL] ,
SUM(TY_LY)/ SUM(LY_YBL)
我知道这可能很遥远。我是 SQL 和 Access 的新手。
谢谢你
解决方案
由于聚合在特定级别运行,因此您需要使用派生表或第二个查询来获取第一个聚合。给定基于集合的表框架,所有数据库都是如此:
SELECT SUM(TY_LY) / SUM(LY_YBL) AS final_result
FROM
(SELECT
SUM(dbo_tbl1_TYsales) AS TY, SUM(dbo_tbl1_LYsales) AS LY,
SUM(dbo_tbl1_TYsales) + SUM(dbo_tbl1_LYsales) AS [TY_LY],
SUM(dbo_tbl1_LYsales) + SUM(dbo_tbl1_YBLsales) AS [LY_YBL] ,
FROM mytable) t
或者使用多个查询:
查询 1
SELECT SUM(dbo_tbl1_TYsales) AS TY, SUM(dbo_tbl1_LYsales) AS LY,
SUM(dbo_tbl1_TYsales) + SUM(dbo_tbl1_LYsales) AS [TY_LY],
SUM(dbo_tbl1_LYsales) + SUM(dbo_tbl1_YBLsales) AS [LY_YBL]
FROM mytable
查询 2
SELECT SUM(TY_LY) / SUM(LY_YBL) AS final_result
FROM Query1
也许有一天,Microsoft Access 团队会将 JET/ACE SQL 方言(~准 ANSI-1989)推进到当前的 ANSI 标准,并实现 CTE(在 ANSI-1999 中引入)甚至窗口函数(在 ANSI-2003 中引入)。
注意:以下不适用于任何 MS Access 版本(作为演示发布)。
WITH cte AS
(SELECT
SUM(dbo_tbl1_TYsales) AS TY, SUM(dbo_tbl1_LYsales) AS LY,
SUM(dbo_tbl1_TYsales) + SUM(dbo_tbl1_LYsales) AS [TY_LY],
SUM(dbo_tbl1_LYsales) + SUM(dbo_tbl1_YBLsales) AS [LY_YBL] ,
FROM mytable)
SELECT SUM(TY_LY) / SUM(LY_YBL) AS final_result
FROM cte;
推荐阅读
- php - PHP insert query not inserting all the content from xml
- python-3.x - Cant get the price (Error list index out of range)
- machine-learning - How to generate data based on an existing balanced dataset for binary classification in Python?
- php - 将 HTML 转换为 PHP 数组
- java - Make button action canceled if dragged outside a certain area
- javascript - css网格上的固定大小按钮
- swiftui - 如何从视图中检测对 BindableObjects 的更改?
- javascript - jsTree复选框事件未触发
- javascript - VS Code 的属性名称中有星号 (★)
- python - replace() 用法有何不同?