MS ACESS:限制ms访问查询中的行数

时间:2018-05-21 08:37:58

标签: vba ms-access

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

表1
Table 1

表2
Table 2

输出中的记录数必须等于表2中的qty列。是否可以使用访问权限,或者我必须使用VBA。

2 个答案:

答案 0 :(得分:1)

您可以使用笛卡尔(乘法)查询:

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个标签。

答案 1 :(得分:0)

"Top N"限制了记录数量。

"Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4044228585563"

使用Union从多个项目中选择前N个记录

Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4044228585563
Union
Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4029045653046