将记录分成每列的多个记录

时间:2014-07-14 20:41:21

标签: sql ms-access ms-access-2007 ms-access-2010

我在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  |

我不想建立联盟,因为数据需要每天刷新/更新,我知道当表/查询发生更改时,联合不会更新

1 个答案:

答案 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]