【发布时间】:2014-09-04 11:03:00
【问题描述】:
我刚刚从我们现有的会计程序中获得了一张 Excel 表格,其中包括我们公司的所有产品。 我立即注意到“HOOFDGROEP”(翻译为“类别”)和“SUBGROEP”(翻译为“子类别”)字段不包括主键,而是字符串值。 我将此表导入访问,但现在我想制作 2 个单独的表,“类别”和“子类别”。这样我可以索引数据库。我使用 SQL 查询来提取这样的组:
INSERT INTO Hoofdgroepen
SELECT DISTINCT HOOFDGROEP
FROM Artikelen
但是现在如何在不手动或查找/替换的情况下快速将所有记录的“HOOFDGROEP”字段替换为其索引值?
例如,我想尽快创建一个名为 hoofdgroepen 的表,如下所示(通过上述查询实现):
ID HOOFDGROEP
3 Cat V
4 Contante betalingskorting
5 Diversen
除此之外:
ID §kop_artikel A_ inv_ product HOOFDGROEP
238 80010077 Chappe Cat V
239 80010517 Beton per m3 Cat V
240 9799044704539 Betalingskorting Contante betalingskorting
241 9799044704537 Viszak klein Diversen
242 9799044704538 Viszak middel Diversen
然后将该表变成这样:
ID §kop_artikel A_ inv_ product HOOFDGROEP
238 80010077 Chappe 3
239 80010517 Beton per m3 3
240 9799044704539 Betalingskorting 4
241 9799044704537 Viszak klein 5
242 9799044704538 Viszak middel 5
【问题讨论】:
-
"我 [..] 注意到字段 [..] 不包括主键,但字符串值" - 不构成 任何 感觉。主键也可以是字符串值。
-
那么我认为我对主键的了解是错误的,我想实现例如“材料”类别,获得索引:1,这样“材料”就不会出现数千次
-
Read the documentation on indexing 如果您仍然无法实现您想要的,请回来。
-
请张贴一个小数据样本并说明您希望它是什么。在 MS Access 中创建新字段/列通常非常容易。我怀疑你想要类似
SELECT DISTINCT INTO Materials WHERE Mid(SomeField,3,4) = 'Something') -
编辑了期望的结果是什么问题
标签: sql database ms-access normalization