Создание перекрестного запроса из запроса объединения в ошибке бросков ms-access - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть 8 таблиц

tblIssue , tblReceipt & tblStockTaking имеют LocationID как внешний ключ из tblLocations

tblIssueDtls , tblReceiptDtls & tblStockTakingDtls имеют ItemID как внешний ключ от tbIte и Qty как поле

Я создал объединение

SELECT "Issue" AS TranscType, LocationID, ItemID, Qty
FROM tblIssue i INNER JOIN tblIssueDtls ii ON i.VchID = ii.VchID
WHERE IssueDate >= NZ((
    SELECT MAX(StockTakeDate)
FROM tblStockTake s
WHERE s.LocationID = i.LocationID
))

UNION ALL

SELECT "Receipt", LocationID, ItemID, Qty * -1
FROM tblReceipt r INNER JOIN tblReceiptDtls rr ON r.VchID = rr.VchID
WHERE ReceiptDate >= NZ((
    SELECT MAX(StockTakeDate)
FROM tblStockTake s 
WHERE s.LocationID = r.LocationID
))

UNION ALL

SELECT "StockTake", LocationID, ItemID, Qty
FROM tblStockTake s INNER JOIN tblStockTakeDtls ss ON s.VchID = ss.VchID
WHERE StockTakeDate = NZ((
    SELECT MAX (StockTakeDate)
    FROM tblStockTake s1
WHERE s1.LocationID = s.LocationID
    ));

Как я хотел, чтобы Сумма (Qty) для всех ItemID в LocationID начиналась с и после последней StockTakeDate.

Работает нормально.

Но когда я пытаюсь сделать кросс-таблицу, запросить LocationID как Row , ItemID как Столбец и Sum (Qty) как значение ошибка при получении ms-доступа ядро ​​базы данных не распознает tblIssue.LocationID как допустимое поле или выражение .

Я попытался запустить запрос таблицы при объединении с SUM (Кол-во), а затем кросс-таблица результирующей таблицы, которая сработала. Но я хочу сделать кросс-таблицу, используя запрос объединения напрямую.

...