Ошибка SQL Anywhere. Ссылка на функцию или столбец для Fraction должна также отображаться в GROUP BY. - PullRequest
0 голосов
/ 06 января 2019

У меня есть этот простой SQL SELECT, который суммируется по ProductID, но я получаю эту ошибку "должны появиться".

SELECT Products.ProductID, 
   Products.Qtty / Catalog.Fraction as Amount
FROM   Products, Catalog
WHERE  Catalog.ID = Products.ID
GROUP BY Products.ProductID

SQL требует, чтобы я поместил столбец Fraction в предложение GROUP BY, которое мне не нужно. Мне просто нужно подвести итог по ProductID. Как мне построить правильный оператор SQL здесь?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 января 2019

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

SELECT p.ProductID, 
       SUM(p.Qtty / c.Fraction) as Amount
FROM Products p JOIN
     Catalog c
     ON c.ID = p.ID
GROUP BY p.ProductID;
0 голосов
/ 06 января 2019

Вам нужно использовать агрегатную функцию:

SELECT Products.ProductID, 
   SUM(Products.Qtty) / SUM(Catalog.Fraction) as Amount
FROM Products
JOIN Catalog
  ON Catalog.ID = Products.ID
GROUP BY Products.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...