MS ACESS: ограничить количество строк в мс запросе доступа - PullRequest
0 голосов
/ 21 мая 2018

У меня есть две таблицы, я хочу выбрать определенное количество записей из таблицы 1. Количество записей должно быть равно значению, указанному в таблице 2.

Table1
Table 1

Таблица2
Table 2

Количество записей в выводе должно быть равно количеству столбцов в таблице 2. Возможно ли использование доступа или мне нужно использовать VBA.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Вы можете использовать декартовой (умножающий) запрос:

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 этикеток на штрих-код.

0 голосов
/ 21 мая 2018

"Top N" ограничивает количество записей.

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

Используйте объединение, чтобы выбрать первую запись N из нескольких элементов

Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4044228585563
Union
Select Top 5 Barcode, Brand, Qty FROM Table1 WHERE Barcode = 4029045653046
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...