2013-10-14 31 views
0

我知道这对大多数人来说是基本的,我并没有太多的使用SQL。我试图返回一个数据集显示以下内容:查询返回客户购买的SKU的数量

CustomerID  #DistinctSKUsPurchased 

这里是我使用的查询,以SalesOrderItem(SOITEM)表加入SalesOrder(SO)表:

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的?甲骨文? SQL Server? –

+0

我使用RazorSQL连接到Firebird数据库 – 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 
相关问题