我有两个表,我想从表 1 中选择一些特定数量的记录。记录数必须等于表 2 中提到的值。
表格1

表2

输出中的记录数必须等于表 2 中的 qty 列。是否可以使用访问或我必须使用 VBA。
您可以使用笛卡尔(乘法)查询:
SELECT
Products.*,
Barcodes.*
FROM
(SELECT DISTINCT
[Tens]+[Ones] AS Factor,
10*Abs([Deca].[id] Mod 10) AS Tens,
Abs([Uno].[id] Mod 10) AS Ones
FROM
MSysObjects AS Uno,
MSysObjects AS Deca) AS F,
Products
INNER JOIN
Barcodes
ON Products.Barcode = Barcodes.Barcode
WHERE
F.Factor <= Barcodes.Qty;
这将为每个条形码创建多达 100 个标签。
"Top N"限制记录的数量。
"Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4044228585563"
使用 Union 从多个 Item 中选择 Top N 记录
Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4044228585563
Union
Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4029045653046