Запрос db2 / sql не позволяет выбрать статическое значение в соединении из-за количества - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь выяснить, как обойти проблему с запросом DB2, который я сейчас использую.

Этот запрос:

SELECT
    count(*) as sales_180,
    180/count(*) as velocity

  FROM orders
        WHERE customerID= :cust_ID
        AND itemNum= :item

Работает нормально и возвращает два значенияЯ хочу.Тем не менее, я пытаюсь выполнить внутреннее соединение для customerID другой таблицы, чтобы получить информацию, связанную с ней.

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

SELECT
    count(*) as sales_180,
    180/count(*) as velocity
    c.customerCompany

  FROM orders o
      inner join customers c
         on o.customerID = c.customerID

  WHERE customerID= :cust_ID
  AND itemNum= :item

Это говорит мне, что не позволит мне выбрать значение c.customerCompany, так как первые значения основаны на Count.

Есть лиКак я могу обойти это, чтобы выбрать c.customerCompany?Я все еще хочу подсчеты, но я в основном хочу сказать: «Для этого клиента, получите его компанию»

1 Ответ

0 голосов
/ 27 сентября 2018

В вашем запросе есть некоторые проблемы.

  1. , когда вы используете статистическую функцию (count, sum, ...), вы должны добавить неагрегированные столбцы в group by.
  2. ваш customerID должен использовать c.customerID или o.customerID, в противном случае есть два столбца с именем customerID из этих двух таблиц, пусть запутает механизм БД.

так что вы можете попробовать это.

SELECT
    count(*) as sales_180,
    180/count(*) as velocity,
    c.customerCompany
FROM orders o
  inner join customers c
     on o.customerID = c.customerID
WHERE c.customerID= :cust_ID AND itemNum= :item
GROUP BY c.customerCompany

ПРИМЕЧАНИЕ

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...