Рассчитать запас из двух проданных таблиц - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть три таблицы STOCK, SOLD и SOLD1 в MS Access и SQL Server. У меня вопрос как подсчитать общий запас SKU мудро ie. (склад - сумма запасов из таблиц продано и продано2)

Access Table Diagram

Я пробовал с левыми объединениями на обоих проданных столах с таблицей STOCK, но Я получаю неверные результаты, проданный запас стола рассчитывается дважды или трижды.

В связи с этим я попытался рассчитать проданный запас отдельно, и я получил неверную сумму SOLD2.

Мой запрос

SELECT 
    STOCK.ID, STOCK.SKU, STOCK.QTY, 
    SUM(SOLD.QTY) AS SS1, SUM(SOLD2.QTY) AS SS2 
FROM 
    (STOCK 
LEFT JOIN 
    SOLD ON STOCK.SKU = SOLD.SKU) 
LEFT JOIN 
    WSITEMS AS SOLD2 ON STOCK.SKU = SOLD2.SKU 
GROUP BY 
    STOCK.ID, STOCK.SKU, STOCK.QTY;

QUERY RESULT

(В ПРОДАНОМ 2 ВСЕГО SKU 1003 - 20 НО оно показывает 40, а ВСЕГО SKU 1005 - 30, но оно показывает 120)

Не могли бы вы сказать, как получить правильно проданный количество после расчета из обеих продаваемых таблиц.

Сначала я попытался получить доступ, но я хочу его и для SQL Сервера.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

Вам нужно объединить до присоединения. Однако я бы порекомендовал два отдельных объединения:

SELECT S.ID, S.SKU, S.QTY, 
       NZ(SO.TOTAL, 0) + NZ(S2.TOTAL) as SOLD_QTY
FROM (STOCK AS S LEFT JOIN
      (SELECT SKU, SUM(QTY) AS TOTAL 
       FROM SOLD AS SO
       GROUP BY SO.SKU
      ) AS SO
      ON SO.SKU = S.SKU
     ) LEFT JOIN
     (SELECT SKU,  SUM(QTY) AS TOTAL  
      FROM WSITEMS S2 
      GROUP BY S2.SKU
     ) AS S2
     ON S.SKU = S2.SKU;

Это позволяет вам перечислить два проданных количества из каждой таблицы в виде отдельных столбцов, если вы хотите это сделать.

0 голосов
/ 02 февраля 2020

Это то, что вы ищете

     SELECT STOCK.ID,STOCK.SKU,STOCK.QTY, 
      SOLDA.TOTAL AS SOLD_QTY FROM STOCK LEFT 
       JOIN
       (SELECT SKU,  Sum(QTY) AS TOTAL from SOLD 
        group by SOLD.SKU
        Union all
         SELECT SKU,  Sum(QTY) AS TOTAL  from SOLD2 
         group by SKU) AS SOLDA
         ON STOCK.SKU=SOLDA.SKU
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...