是否有一种方法可以使用SQL在Microsoft Access中添加/乘以聚合函数?
我的目标是让Access查询尽可能多地为我计算。是否有一种方法可以添加/多重(或在这个原因中划分)聚合函数并在列中显示输出 例如:是否有一种方法可以使用SQL在Microsoft Access中添加/乘以聚合函数?,sql,ms-access,aggregate,aggregate-functions,Sql,Ms Access,Aggregate,Aggregate Functions,我的目标是让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
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
也许有一天,微软Access团队会将JET/ACE SQL方言(~quasi ANSI-1989)提升到当前的ANSI标准,并实现CTE(在ANSI-1999中引入)甚至窗口功能(在ANSI-2003中引入) 注意:以下内容在任何MS 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
也许有一天,微软Access团队会将JET/ACE SQL方言(~quasi ANSI-1989)提升到当前的ANSI标准,并实现CTE(在ANSI-1999中引入)甚至窗口功能(在ANSI-2003中引入) 注意:以下内容在任何MS Access版本(发布为演示版)中都不起作用
这几乎可以奏效。如果不再次执行聚合或使用子查询,通常无法在同一查询中再次引用计算字段。这几乎可以正常工作。如果不再次执行聚合或使用子查询,您通常无法在同一查询中再次引用计算字段。这更有意义,因为我习惯于使用更多面向对象的编程,在SQL中分配值时会迷失方向。非常感谢你的帮助!这更有意义,因为我习惯于使用更多面向对象的编程,在SQL中赋值时,我就不知所措了。非常感谢你的帮助!