GROUP BY子句-不在适用于Blackberry 7.0的HSQLDB中工作

GROUP BY子句-不在适用于Blackberry 7.0的HSQLDB中工作,sql,hsqldb,Sql,Hsqldb,我在黑莓7.0的应用程序中使用了带有GROUPBY子句的HSQL查询 我尝试了以下查询: SELECT Cus.cus_id,Cus.cus_last_name,Inv.inv_id,Sum(Inv.inv_due_amt) as ACCOUNT FROM Customer as Cus,Invoice as Inv Where Cus.cus_id=Inv.cus_id GROUP BY Cus.cus_last_name; 我得到的是“不在聚合函数或group by子句中错误” 如何解决

我在黑莓7.0的应用程序中使用了带有GROUPBY子句的HSQL查询

我尝试了以下查询:

SELECT Cus.cus_id,Cus.cus_last_name,Inv.inv_id,Sum(Inv.inv_due_amt) as ACCOUNT
FROM Customer as Cus,Invoice as Inv
Where Cus.cus_id=Inv.cus_id 
GROUP BY Cus.cus_last_name;
我得到的是
“不在聚合函数或group by子句中错误”


如何解决此问题?

列Cus.Cus\u id和Inv.ind\u id必须位于聚合函数或GROUP BY子句中。我怀疑你想要:

SELECT 
  Cus.cus_id,Cus.cus_last_name,Inv.inv_id,Sum(Inv.inv_due_amt) as ACCOUNT 
FROM 
  Customer as Cus,Invoice as Inv 
Where 
  Cus.cus_id=Inv.cus_id 
GROUP BY 
  Cus.cus_last_name, Cus.cus_id, Inv.inv_id
SELECT 
  Cus.cus_id,Cus.cus_last_name,Sum(Inv.inv_due_amt) as ACCOUNT 
FROM 
  Customer as Cus,Invoice as Inv 
Where 
  Cus.cus_id=Inv.cus_id 
GROUP BY 
  Cus.cus_last_name, Cus.cus_id
然而,我不确定这会给你真正想要的分组。这可能更符合您的需求:

SELECT 
  Cus.cus_id,Cus.cus_last_name,Inv.inv_id,Sum(Inv.inv_due_amt) as ACCOUNT 
FROM 
  Customer as Cus,Invoice as Inv 
Where 
  Cus.cus_id=Inv.cus_id 
GROUP BY 
  Cus.cus_last_name, Cus.cus_id, Inv.inv_id
SELECT 
  Cus.cus_id,Cus.cus_last_name,Sum(Inv.inv_due_amt) as ACCOUNT 
FROM 
  Customer as Cus,Invoice as Inv 
Where 
  Cus.cus_id=Inv.cus_id 
GROUP BY 
  Cus.cus_last_name, Cus.cus_id

所有非聚合列都应是og GROUP BY子句的一部分。试试这个

SELECT Cus.cus_id,Cus.cus_last_name,Inv.inv_id,Sum(Inv.inv_due_amt) as ACCOUNT
FROM Customer as Cus,Invoice as Inv
Where Cus.cus_id=Inv.cus_id 
GROUP BY Cus.cus_id,Cus.cus_last_name,Inv.inv_id

谢谢你的回复。我尝试在GROUPBY子句中添加所有非聚合字段,但得到了242条记录。如果我只使用clauseThanks的组中的Cus.Cus_姓来回复我的帖子,我只能得到48条记录。我尝试了查询,但没有得到所需的实际结果。您应该提供数据集示例和所需结果。如果您想要发票金额的总和,则无法获得发票id,因为每个客户可能有两张或更多发票。按cus.cus\u id从查询和使用组中删除姓氏和存货id。如果存货id是主键,则可以使用HSQLDB 2.x将存货姓氏添加到查询中。