Sql 汽车经销商库存订单列表

Sql 汽车经销商库存订单列表,sql,ms-access-2010,normalization,Sql,Ms Access 2010,Normalization,我在瑞士的一家大型汽车经销店工作。我们每天都会收到全国各地停车场的汽车清单。这个列表帮助我们找到客户想要的汽车,以便我们向他们提出报价 这份清单庞大且难以处理。例如,所有可选版本和模型版本都写在一个单元格中。所以,我有一个想法,用MS Access建立一个数据库,包含一个研究表单和一份报告,这样我们只需要将这个列表加载到excel工作表中,运行一个格式化宏,以便有一个合适的列表可以使用,然后通过表连接将它提供给数据库。这肯定会节省我们很多时间 因此,在格式化宏的末尾,我的列表有点像这样: 由于

我在瑞士的一家大型汽车经销店工作。我们每天都会收到全国各地停车场的汽车清单。这个列表帮助我们找到客户想要的汽车,以便我们向他们提出报价

这份清单庞大且难以处理。例如,所有可选版本和模型版本都写在一个单元格中。所以,我有一个想法,用MS Access建立一个数据库,包含一个研究表单和一份报告,这样我们只需要将这个列表加载到excel工作表中,运行一个格式化宏,以便有一个合适的列表可以使用,然后通过表连接将它提供给数据库。这肯定会节省我们很多时间

因此,在格式化宏的末尾,我的列表有点像这样:

由于不同车型上的相同选装配置具有不同的价格,因此我需要有如下数据:


因此,在我的报告中,我可以做一个表连接查询,并有一个汽车选项列表及其价格。有没有办法在MS Access中实现“表规范化”?

如果选项列的数量有限,您可以尝试使用select union在单个列中获取所有结果

insert into OPTTrans (carID, BrandId, Model, OPT)
select carID, BrandId, Model, Opt1
from OPT
where Opt1 is not null
union  
select carID, BrandId, Model, Opt2 
from OPT
where Opt2 is not null
union
select carID, BrandId, Model, Opt3 
from OPT
where Opt3 is not null
order by carId 

欢迎来到堆栈溢出!请阅读并阅读,特别是如何提问。你在这里的最佳选择是做你的研究,搜索相关的话题,然后尝试一下。在做了更多的研究和搜索之后,发布一篇你尝试的文章,并明确指出你的困境,这可以帮助你得到更好的答案。谢谢你的回复。我无法预先知道一辆车有多少选装件。在我的excel工作表中,我留下了40个选项列的空间。然后,您可以采用两种方式1)或使用40个union构建查询。。2)或使用过程编程语言。。阅读非规范化表并在规范化表中插入所需的值(使用与结果等效的模式)。我刚刚尝试了您的解决方案,它按照我的想象工作。我现在唯一需要的是,当OPTX列不包含值时,它们不会得到“考虑”。你知道怎么做吗?你可以过滤optx的值不为null。最后,如果我有null值,这并不重要。因为我有40个选项选择unite,所以要得到查询结果几乎需要5分钟。你有没有办法让它跑得更快?我还想将结果插入一个新表中,因为我需要每天进行一次查询。我试图使用INSERT INTO操作符,但我一直在从中得到secon上的语法错误。为了让40个联合操作与INSERT-INTO操作符一起工作,我必须做些什么吗?