СЧЕТ И СУММА С ВНУТРЕННИМ СОЕДИНЕНИЕМ - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть две таблицы, которые связаны по 4 полям DP_STOP имеет эти 4 поля плюс идентификатор клиента DP_ORDER имеет эти 4 поля плюс заказы. Клиент (LOCATION_ID) находится на 4 маршрутах в качестве остановок на разных в таблице DP_STOP.итого 7 заказов для этих 4 маршрутов. Когда я пытаюсь подсчитать количество клиентов, в то время как СУММА заказов, счетчик представляет собой количество заказов вместо количества остановок

таблица DP_STOP

REGION | ROUTE_ID | ROUTE_DATE | INTERNAL_STOP | LOCATION_ID

11600-A| 202      | 2018-11-01 | 9             | 00001
11600-A| 202      | 2018-11-08 | 9             | 00001
11600-A| 202      | 2018-11-15 | 9             | 00001
11600-A| 202      | 2018-11-22 | 9             | 00001

Таблица DP_ORDER

REGION | ROUTE_ID | ROUTE_DATE | INTERNAL_STOP | ORDER_NUMBER | PLANNED_SIZE1

11600-A| 202      | 2018-11-01   9             | 1A           | 5
11600-A| 202      | 2018-11-08   9             | 2B           | 5
11600-A| 202      | 2018-11-08   9             | 2C           | 5
11600-A| 202      | 2018-11-15   9             | 3A           | 5
11600-A| 202      | 2018-11-15   9             | 3B           | 5
11600-A| 202      | 2018-11-22   9             | 4A           | 5
11600-A| 202      | 2018-11-22   9             | 4B           | 5

Когда я пытаюсь СЧИТАТЬ количество остановок при СУММЕ ордера, СЧЕТ подсчитывает количество ордеров вместо количества стопов с помощью следующего запроса:

SELECT  
COUNT (L.LOCATION_ID) AS DELIVERIES,
L.LOCATION_ID AS CUSTOMER_ID,
SUM (O.PLANNED_SIZE1) AS CASES
    FROM TSDBA.DP_STOP L
       INNER JOIN TSDBA.DP_ORDER O
       ON (O.REGION_ID=L.REGION_ID) 
       AND (O.ROUTE_DATE=L.ROUTE_DATE) 
       AND (O.ROUTE_ID=L.ROUTE_ID)
       AND (O.INTERNAL_STOP_ID=L.INTERNAL_STOP_ID)
  WHERE L.ROUTE_DATE BETWEEN '2018-11-01' AND '2018-11-28' 
  AND L.REGION_ID='11600-A'
    GROUP BY L.LOCATION_ID

Мои результаты запроса:

DELIVERIES | CUSTOMER_ID | PLANNED_SIZE1
7          | 00001       | 35

Я хочу, чтобы это было:

DELIVERIES | CUSTOMER_ID | PLANNED_SIZE1
4          | 00001       | 35

1 Ответ

0 голосов
/ 28 ноября 2018

Вы должны добавить distinct к выражению, которое однозначно определяет строку для этого, то есть COUNT (distinct L.ROUTE_DATE) (в вашем случае).

...