MS ACCESS - не может вычесть возвращенные значения из запроса из значений в другой таблице - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть две таблицы: Проект и Счет-фактура

Таблица проекта:

ID   |   UR_No   |  Budget_Total  |  Budget_To_Date
1    |  329000   |   150000.00    |
2    |  403952-C |   33000        |

Таблица счетов-фактур:

ID   |   URID   |  InvAmount
1    |  329000  |  157.00
2    |  329000  |   32.00
3    |  403952-C|  193.00

В таблице счетов-фактур указаны суммы, начисленные на проект.Проект имеет уникальный номер UR (UR_No), а счета-фактуры имеют повторяющиеся номера UR (URID), что означает, что один и тот же проект получает ежемесячный счет и имеет разные номера счетов.

То, что я хотел бы получить, это:

ID   |   UR_No   |  Budget_Total  |  Budget_To_Date
1    |  329000   |   150000.00    |   149811.00
2    |  403952-C |   33000        |   32807

Сначала выполняется совокупный запрос к таблице счетов, чтобы получить текущую сумму денег, начисленных на проект:

SELECT Invoice.URID, Sum(Invoice.InvAmount) AS total
FROM Invoice
GROUP BY Invoice.URID;

Возвращает следующее:

URID    |  InvAmount
329000  |  189.00
403952-C|  193.00

Затем он экспортируется в таблицу в БД с именем Invoice_Totals

. Затем я хочу присоединить таблицу Invoice_Totals к таблице проекта с помощью UR_No & URID и вычислить пустое существующее поле «Budget_to_Date» в таблице проекта с помощьювычитая Invoice_Totals.total в таблице запросов из поля с именем Budget_total в таблице проекта.Прежде чем пытаться это сделать, я бы просто хотел, чтобы запрос возвратил значения:

SELECT Project.Budget_Total - Invoice_Totals.total 
FROM Project INNER JOIN Invoice_Totals ON Project.UR_No = Invoice_Totals.URID;

Возвращает ошибку: не удается присоединиться к объекту Memo, OLE или гиперссылке (Project.UR_No = Invoice_Totals.URID)

Я посмотрел SO сообщение и попытался использовать левый 255:

SELECT Project.Budget_Total - Invoice_Totals.total 
FROM Project INNER JOIN Invoice_Totals ON left(Project.UR_No,255) = left(Invoice_Totals.URID, 255);

Это ничего не возвращает.Если возможно, как я могу вычесть совокупное поле из итогового бюджета в таблице Project в поле Budget_To_Date или в новом поле?

1 Ответ

0 голосов
/ 06 февраля 2019

Ваш комментарий указывает на то, что связывающими полями является LongText, который является синонимом типа данных Memo, поэтому в сообщении об ошибке четко указана причина.Измените тип поля на ShortText.

Однако действительно следует использовать поле идентификатора в таблице Project в качестве первичного ключа и сохранить его вместо UR_No в таблице Invoice.Числа являются более эффективными ключами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...