2016-12-13 2 views
0
  • У меня есть таблица StockMovements, которая записывает все движения моих продуктов. Он имеет поле под названием «Статус», которое может иметь либо значение Продано, либо приобретено, количество и продукт (есть еще несколько, но arent важно сейчас).
  • Я сделал запрос, чтобы взять все продукты со статусом «Приобретенные» и взять количество и назвать его Приобретенные продукты (из таблицы StockMovements). Я просто суммировал количество и получил купленное количество для каждого продукта (названное полем «Купленный»).
  • Я сделал еще один запрос, все равно только с статусом Проданного.
  • После того, как я сделал новый запрос с именем Stock. Его построенный из таблицы Продукты и 2 вопроса, упомянутых выше. Требуется prodict_ID и имя продукта из таблицы Продукт, приобретенное поле от первого запроса и поле Продано от второго запроса, а затем окончательное поле , не связанное с каким-либо из вышеперечисленных, но вычислением. Именованно это ДоступноКоличество и добавлено к нему с помощью конструктора выражений = [Куплено] - [Продано].
  • Теперь, когда я запускаю запрос, он отлично работает, кроме одного. Когда у меня есть определенное количество приобретенного продукта, которое я продал до , кто-нибудь еще (даже не 1 шт.) Он не хочет появляться в запросе.
  • Я хочу, чтобы продукт отображался в запросе и что доступное количество является приобретенным количеством. Поэтому как-то пропустить значение Продано , если оно 0, и просто записать количество Приобретенное в это поле.

ответ

0

Если у вас нет проданного количества, ваша сумма эффективно становится покупкой-нулевым, что не приведет к ответу.

Вы должны разрешить нули, используя [Приобретенный] - (Nz ([Продано], 0)), который заставит нуль в вычислении.

+0

Спасибо за ответ. Я попробовал, но он все равно не хочет его показывать, однако расчет все еще работает хорошо, поэтому я предполагаю, что функция в порядке. –

+0

Есть ли способ написать в критериях для product_ID, чтобы показать им все, что бы ни случилось? –

0

Я зашел в SQL-представление и изменил INNER JOIN, чтобы ПРАВИЛЬНОЕ СОЕДИНЕНИЕ, он выполнил эту работу.

SELECT tblProduct.Product_ID, tblProduct.ProductName, Nz([Purchased],0) AS 
 
PurchasedQuantity, Nz([Sold],0) AS SoldQuantity, [PurchasedQuantity]-(Nz([SoldQuantity],0)) 
 
AS [Available] FROM qrySoldProducts RIGHT JOIN (qryPurchasedProducts RIGHT JOIN 
 
tblProduct ON qryPurchasedProducts.Product_ID = tblProduct.Product_ID) ON 
 
qrySoldProducts.Product_ID = tblProduct.Product_ID;