我在MS Access中有一个查询,它从4个不同的表中提取,它显示一个ID(在4个表中是常见的)和4个总计字段,一个是实际总数,另一个是预测总数,等等
因此,每条记录都显示如下内容:
ID | TotalActual | TotalForecast | TotalRR | TotalBudget
234518 | 90.10 | 150.98 | 152.31 | 149.0
有没有办法划分此记录,使其显示如下:
Type | ID | Total |
Actual | 234518 | 90.10 |
Forecast | 234518 | 150.98 |
RR | 234518 | 152.31 |
Budget | 234518 | 149.0 |
我不想建立联盟,因为数据需要每天刷新/更新,我知道当表/查询发生更改时,联合不会更新
答案 0 :(得分:0)
正如对该问题的评论中所揭示的那样,您对使用UNION查询的厌恶是基于对这些查询如何工作的误解,因此是没有根据的。实际上,您确实希望使用当前查询的UNION查询而不是(可能在四个表中的每个表上执行INNER JOIN以生成五列)。 UNION查询类似于
SELECT
'Actual' AS [Type],
[ID],
[TotalActual] AS [Total]
FROM [ActualTable]
UNION ALL
SELECT
'Forecast' AS [Type],
[ID],
[TotalForecast] AS [Total]
FROM [ForecastTable]
UNION ALL
SELECT
'RR' AS [Type],
[ID],
[TotalRR] AS [Total]
FROM [RRTable]
UNION ALL
SELECT
'Budget' AS [Type],
[ID],
[TotalBudget] AS [Total]
FROM [BudgetTable]