2013-10-14 2 views
0

Я знаю, что это элементарно для большинства из вас, я не очень много использую SQL. Я пытаюсь вернуть набор данных, который показывает следующее:Запрос на возврат Кол-во SKU, приобретенных Клиентом

CustomerID  #DistinctSKUsPurchased 

Вот запрос я использую, вступив в таблицу SalesOrder (SO) с таблицей SalesOrderItem (SOITEM):

SELECT SO.ID, SOITEM.SOID, SO.CustomerID, COUNT(DISTINCT SOITEM.ProductID) 
FROM SOITEM 
INNER JOIN SO 
ON SO.ID=SOITEM.SOID 
ORDER BY SO.ID; 

Я получаю ошибку синтаксиса, который говорит:

ERROR: GDS Exception. 335544569. Dynamic SQL Error 
SQL error 
code = -104 
Invalid expression in the select list (not contained 
in either an aggregate function or the GROUP BY clause) 
Error 
Code: 335544569 

Query = SELECT SO.ID, SOITEM.SOID, SO.CustomerID, 
COUNT(DISTINCT SOITEM.ProductID) 
FROM SOITEM 
INNER 
JOIN SO 
ON SO.ID=SOITEM.SOID 
ORDER BY SO.ID; 

Любая помощь будет принята с благодарностью!

+1

Похоже, что вам не хватает предложения 'Group by'. Какой SQL это? MySql? Oracle? SQL Server? –

+0

Я подключаюсь к базе данных Firebird, используя RazorSQL – John

ответ

0
SELECT SO.ID, SOITEM.SOID, SO.CustomerID, COUNT(DISTINCT SOITEM.ProductID) 
FROM SOITEM 
INNER JOIN SO 
ON SO.ID=SOITEM.SOID 
group by SO.ID, SOITEM.SOID, SO.CustomerID 
ORDER BY SO.ID