Sql 为每列将一条记录分隔为多条记录
我在MS Access中有一个查询,它从4个不同的表中引入,它显示一个ID(这在4个表中很常见)和4个总计字段,一个是实际总计,另一个是预测总计,等等 因此,每条记录显示如下内容:Sql 为每列将一条记录分隔为多条记录,sql,ms-access,ms-access-2007,ms-access-2010,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
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 |
有没有办法分割此记录,使其显示如下:
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 |
我不想创建联合,因为数据需要能够每天刷新/更新,而且我知道,当表/查询发生更改时,联合不会更新。正如对问题的评论所揭示的,您对使用联合查询的厌恶是基于对这些查询如何工作的误解,因此是没有根据的。事实上,您确实希望使用联合查询而不是当前查询(这可能会对四个表中的每个表进行内部联接以生成五列)。联合查询类似于
选择
“实际”为[类型],
[ID],
[TotalActual]为[Total]
来自[实际可实现]
联合所有
挑选
“预测”作为[类型],
[ID],
[TotalForecast]作为[Total]
从[预报台]
联合所有
挑选
“RR”作为[类型],
[ID],
[TotalRR]作为[Total]
从[RRTable]
联合所有
挑选
“预算”作为[类型],
[ID],
[TotalBudget]作为[Total]
从[可预算的]
我知道当表/查询发生更改时,联合不会更新
我恐怕这是一个错误的说法,请解释您的意思如果表/查询发生更改,它将不会自动出现在联合查询中,我必须再次运行联合查询才能更新。而对于常规查询,表的更改将自动显示。如果您引用的是数据中的更改,则为false,您将始终看到实际数据。如果您引用了模式或表结构中的更改(更改列名),那么即使使用UNION或not,它也不会起作用。这比我能更好地解释如果你是指计算字段,那么是的,你也可以在联合查询中使用这些字段(在联合在一起的每个单独的SELECT查询中)。“您不能在[UNION]查询中更新数据”的意思是,例如,如果您在数据表视图中打开UNION查询,则无法在网格中键入新值以更新基础表。但是,您可以直接更新基础表,然后刷新联合查询的结果(例如,通过点击[F5])来查看更新的值。