При объединении обеих таблиц результаты сумм дублируются - PullRequest
1 голос
/ 06 июня 2019

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

Таким образом, если у каждого магазина своя собственная цена, сводка суммирует все значения, и результат очень большой.

ТЕКУЩИЙ ЗАПРОС:

Select NROOC,sum(cant_oc), sum(CANT_REC), 
        sum(cant_oc)-sum(CANT_REC) as DIF,
        (sum(cant_oc*costo_PPF))-(sum(CANT_REC*costo_PPF)) as DIF_costo
from oc_contenedores_odbms 
    left join costo_PPF on oc_contenedores_odbms.SKU=costo_PPF.sku
where NROOC in ('9053963');

Имя Таблица 1: costo_PPF

 +-------------+----------+------------+----------------------+--+
 | #           |  sku     |  costo_PPF |  fecha_actualizacion |  |
 |   id_tienda |          |            |                      |  |
 +-------------+----------+------------+----------------------+--+
 | 2           | 2618796  | 6710,38    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 2           | 2669161  | 6076,25    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 2           |  266917X | 6292,23    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 2           | 2669188  | 6289,89    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 2           |  266920X | 5693,62    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 2           | 2742322  | 6399,75    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 3           | 2669161  | 6066,39    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 3           |  266917X | 5981,14    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 3           | 2669188  | 6496,81    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 3           |  266920X | 5723,14    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 3           | 2742322  | 6364,17    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+
 | 3           | 2618796  | 6710,38    |  2019-06-05          |  |
 +-------------+----------+------------+----------------------+--+

Имя Таблица 2: oc_conenedores_odbms

 +----------+---------+----------+-----------+--------+------+
 |  SKU     |  NROOC  |  CANT_OC |  CANT_REC |  LOCAL |  DIF |
 +----------+---------+----------+-----------+--------+------+
 | 2618796  | 9053963 | 744      | 744       | 508    | 0    |
 +----------+---------+----------+-----------+--------+------+
 | 2669161  | 9053963 | 2232     | 0         | 508    | 2232 |
 +----------+---------+----------+-----------+--------+------+
 |  266917X | 9053963 | 3720     | 744       | 508    | 2976 |
 +----------+---------+----------+-----------+--------+------+
 | 2669188  | 9053963 | 2232     | 1488      | 508    | 744  |
 +----------+---------+----------+-----------+--------+------+
 |  266920X | 9053963 | 1728     | 0         | 508    | 1728 |
 +----------+---------+----------+-----------+--------+------+
 | 2742322  | 9053963 | 968      | 0         | 508    | 968  |
     +----------+---------+----------+-----------+--------+------+

Фактический результат:

+---------+---------------+----------------+-------+-------------+
| NROOC   | Suma(CANT_OC) | Suma(CANT_REC) | DIF   | DIF_costo   |
+---------+---------------+----------------+-------+-------------+
| 9053963 | 23248         | 5952           | 17296 |105.224.862,2|
+---------+---------------+----------------+-------+-------------+

Ожидаемый результат:

+---------+---------------+----------------+------+---------------+
| NROOC   | Suma(CANT_OC) | Suma(CANT_REC) | DIF  | DIF_costo     |
+---------+---------------+----------------+------+---------------+
| 9053963 | 11624         | 2976           | 8648 | 52.126.284,72 |
+---------+---------------+----------------+------+---------------+
...