[英]SQL Union Query - two access tables
我在MS Access中有两个相同的查询, qryLabour
和qryMaterials
。 我需要从三个领域中获得总计: Labour Mins
, Laser Mins
和$ Cost
。
我知道可以使用联合查询来完成此操作,但是自从使用联合查询已经有很长时间了,而且我一直收到“ FROM语句中的错误”。
我的SQL是:
SELECT sum(TotalLabour) as TotalLabour,sum(TotalCost) as TotalCost,sum(TotalLaser) as TotalLaser
FROM
(
SELECT Sum([qryLabour].[Labour Mins]) AS TotalLabour, Sum([qryLabour].[$ Cost]) AS TotalCost, Sum([qryLabour].[Laser Mins]) AS TotalLaser
FROM qryLabour;
union all
SELECT Sum([qryMaterial].[Labour Mins]) AS TotalLabour, Sum([qryMaterial].[$ Cost]) AS TotalCost, Sum([qryMaterial].[Laser Mins]) AS TotalLaser
FROM qryMaterial;
)
请有人能告诉我我要去哪里错了吗? 如果删除顶层的“选择”语句,我将得到两行包含总计的行,这是我添加顶层语句来合并两者的时候。
请注意,但是我认为您需要一个别名:
SELECT sum(u.TotalLabour) as TotalLabour,sum(u.TotalCost) as TotalCost,sum(u.TotalLaser) as TotalLaser
FROM
(
SELECT Sum([qryLabour].[Labour Mins]) AS TotalLabour, Sum([qryLabour].[$ Cost]) AS TotalCost, Sum([qryLabour].[Laser Mins]) AS TotalLaser
FROM qryLabour
union all
SELECT Sum([qryMaterial].[Labour Mins]) AS TotalLabour, Sum([qryMaterial].[$ Cost]) AS TotalCost, Sum([qryMaterial].[Laser Mins]) AS TotalLaser
FROM qryMaterial
) as u
编辑 :也删除“;” 在子查询中,如@jarlh建议
谢谢Jaydip。
我实际上已经知道了;
在内部SELECT
语句的末尾,我删除了它,并使父SELECT
的名称唯一。 现在工作很棒。
因此正确的代码是:
SELECT sum( tempTotalLabour) as TotalLabour,sum( tempTotalCost) as TotalCost,sum( tempTotalLaser) as TotalLaser
FROM
(
SELECT Sum([qryLabour].[Labour Mins]) AS tempTotalLabour, Sum([qryLabour].[$ Cost]) AS tempTotalCost, Sum([qryLabour].[Laser Mins]) AS tempTotalLaser
FROM qryLabour
union all
SELECT Sum([qryMaterial].[Labour Mins]) AS tempTotalLabour, Sum([qryMaterial].[$ Cost]) AS tempTotalCost, Sum([qryMaterial].[Laser Mins]) AS tempTotalLaser
FROM qryMaterial
) ;
干杯克里斯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.