В запросе не отображаются десятичные значения - PullRequest
1 голос
/ 19 июня 2011

У меня есть запрос на доступ, который должен получить количество, приобретенное за месяц, для набора предметов. Мое объединение настроено на выбор всех элементов из Analysis и элементов из продукта, соответствующих анализу.

    SELECT AnalysisItems.Pmid, AnalysisItems.ProductName, Sum(Transactions.TransactionQty) 
    AS SumOfTransactionQty, Transactions.StoreAccount
    FROM AnalysisItems INNER JOIN Transactions ON AnalysisItems.Pmid = Transactions.Pmid
    WHERE (((Transactions.TransactionDate) Between #4/1/2011# And #4/30/2011#) 
    AND StoreAccount = 964290)
    GROUP BY AnalysisItems.Pmid, AnalysisItems.ProductName, Transactions.StoreAccount
    ORDER BY AnalysisItems.ProductName;

Я хочу просмотреть все 78 элементов анализа, независимо от того, имеют они количественное значение или нет. Это возвращает только те товары, которые имеют количество. Он также не возвращает отрицательные значения или значения от 0 до 1 ... он не покажет мне 0,50, хотя я знаю, что там есть некоторые десятичные значения. Все установлено на стандартное десятичное число, масштаб 2

Я пытался перейти на общий номер и полностью избавиться от формата, но это тоже не работает.

Итак, мои вопросы: что я могу попытаться увидеть десятичные значения в моем запросе, и как я могу увидеть все элементы?

Ответы [ 2 ]

1 голос
/ 19 июня 2011

У вас есть часть вашего запроса как:

FROM AnalysisItems INNER JOIN Transactions ON AnalysisItems.Pmid = Transactions.Pmid
WHERE (((Transactions.TransactionDate) Between #4/1/2011# And #4/30/2011#) 

Внутреннее объединение, которое вы указали, не дает ожидаемых результатов - в идеале вы хотите использовать левое объединение для своих целей. Заменить

FROM AnalysisItems INNER JOIN Transactions

с

FROM AnalysisItems LEFT JOIN Transactions

Я думаю, что это должно работать нормально

0 голосов
/ 19 июня 2011

"Я хочу просмотреть все 78 элементов анализа, независимо от того, имеют ли они количественное значение или нет."

Если это означает, что вы хотите, чтобы строки AnalysisItems были включены в набор результатов, даже если эти элементы не имеютсовпадения в транзакциях за апрель и StoreAccount 964290, они не будут включены, когда вы поместите эти условия в предложение WHERE ... вы получите только те строки, которые соответствуют условиям предложения WHERE.

Я думаю, что вам нужно использовать подзапрос для транзакций и переместить предложение WHERE в подзапрос.И СЛЕДУЕТ ПОДКЛЮЧИТЬ AnalysisItems к подзапросу.

SELECT
    a.Pmid,
    a.ProductName,
    Sum(t.TransactionQty) AS SumOfTransactionQty,
    t.StoreAccount
FROM
    AnalysisItems AS a
    LEFT JOIN [
        SELECT
            Pmid,
            TransactionQty,
            StoreAccount
        FROM Transactions
        WHERE
            (TransactionDate Between #4/1/2011# And #4/30/2011#) 
            AND StoreAccount = 964290
        ]. AS t
        ON a.Pmid = t.Pmid
GROUP BY
    a.Pmid, 
    a.ProductName,
    t.StoreAccount
ORDER BY
    a.ProductName;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...