Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为每列将一条记录分隔为多条记录_Sql_Ms Access_Ms Access 2007_Ms Access 2010 - Fatal编程技术网

Sql 为每列将一条记录分隔为多条记录

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

我在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  |
有没有办法分割此记录,使其显示如下:

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])来查看更新的值。