Я пытаюсь извлечь данные из таблицы, которая ссылается на транзакции из другой таблицы. Я не могу понять, как получить желаемый результат.
Таблица 1:
+--------+-------------+---------+
| Widget | SequenceNbr | Amount |
+--------+-------------+---------+
| Thing1 | 12345 | 100.00 |
| Thing1 | 12346 | 110.00 |
| Thing2 | 12345 | 98.25 |
| Thing2 | 12347 | 877.99 |
| Thing3 | 12333 | 638.00 |
+--------+-------------+---------+
Таблица 2:
+----------+------------------+----------------+
| BatchNbr | BeginSequenceNbr | EndSequenceNBr |
+----------+------------------+----------------+
| 9998 | 12300 | 12345 |
| 9999 | 12346 | 12350 |
+----------+------------------+----------------+
Я пытался создать, используя group by
для first
/ last
и различные сценарии соединения.
Пример запроса:
SELECT
Table1.[Widget],
Table1.[SequenceNbr],
Table1.[Amount],
Table2.[BatchNbr]
FROM
Table2 INNER JOIN Table1 ON
(Table2.BeginSequenceNbr) AND
(Table2.EndSequenceNbr = Table1.[SequenceNbr])
WHERE
(((Table1.[SequenceNbr]) Between [Enter Begin Sequence Nbr] And [Enter End Sequence Nbr])));
Если параметр запроса Диапазон последовательности от 12300
до 12346
, то желаемый результат
Thing1, 12345, 100.00, 9998
Thing1, 12346, 110.00, 9999
Thing2, 12345, 98.25, 9998
Thing3, 12333, 638.00, 9998
Попробуйте следующее:
select
t1.widget,
t1.sequencenbr,
t1.amount,
t2.batchnbr
from
table1 t1 inner join table2 t2 on
t1.sequencenbr >= t2.beginsequencenbr and
t1.sequencenbr <= t2.endsequencenbr
Обратите внимание, что MS Access не сможет представить соединение в конструкторе запросов, но ядро базы данных JET, используемое MS Access, должно по-прежнему иметь возможность выполнять этот действительный SQL.