我在Microsoft Access数据库中有以下表格:
TableName: Cabinets
RoomID - Number
Wall ID - Number
Cabinet ID - Number
Width - Number (double)
Height - Number (double)
Depth - Number (double)
Quantity - Number
我需要做的是创建一个查询,该查询将在“数量”字段中指定的次数复制每一行。举个例子,我们说我有以下数据:
Room ID Wall ID Cabinet ID Width Height Depth Quantity
1 1 1 30 34.5 24 1
1 1 2 42 34.5 24 1
1 1 3 18 34.5 24 2
我需要一个可以创建以下内容的查询:
Room ID Wall ID Cabinet ID Width Height Depth
1 1 1 30 34.5 24
1 1 2 42 34.5 24
1 1 3 18 34.5 24
1 1 3 18 34.5 24
现在,在其他问题中,我已经看到我可以创建一个数字'不幸的是,为了实现这一点,我根本无法改变表格。事实上,我对这个数据库的实际操作非常有限。
这是我能做的:
非常感谢任何可以给予的帮助。非常感谢你的进步。
答案 0 :(得分:0)
嗯,这在Access中非常痛苦,但你可以动态创建一个数字表。我们假设cabinet_id
实际上是cabinets
表中的唯一ID。
select c.*
from cabinets c left join
(select (select count(*) from cabinets c2 where c2.cabinet_id <= c.cabinet_id) as n
from cabinets c
) n
on n.n <= c.quantity;
这使用cabinets
表生成数字列表,使用相关子查询来获取数字。请注意,这假定quantity
始终小于此表中的行数。
如果您知道ID没有间隙并从1开始,您可以将其简化为:
select c.*
from cabinets c left join
(select cabinet_id) as n
from cabinets c
) n
on n.n <= c.quantity;