Apache Derby 中的 SQL 查询
我正在开发一个使用 Apache Derby 数据库的副业项目,但在查询时遇到了问题。我有以下两个表:
create table Employee(
ID VARCHAR(7) not null,
lname VARCHAR(30) NOT NULL,
fname VARCHAR(30) NOT NULL,
avgPieces int,
PRIMARY KEY(ID));
create table Record(
emp_id VARCHAR(7) references Employee(ID),
day DATE NOT NULL,
pieces int NOT NULL,
numMisloads int);
我试图获取一个查询来返回给定员工的 sum(pieces)/sum(numMisloads) 。我有以下查询,但收到一条错误消息,指出由于存在聚合,因此所有返回都需要具有有效的聚合。
SELECT lname, fname, (SUM(Record.pieces)/SUM(Record.numMisloads))
FROM Employee, Record Where Employee.id = Record.emp_id GROUP BY Employee.id;
非常困难,任何帮助将不胜感激。
I'm working on a side project with a Apache Derby database and I'm having trouble with a query. I have the following two tables:
create table Employee(
ID VARCHAR(7) not null,
lname VARCHAR(30) NOT NULL,
fname VARCHAR(30) NOT NULL,
avgPieces int,
PRIMARY KEY(ID));
create table Record(
emp_id VARCHAR(7) references Employee(ID),
day DATE NOT NULL,
pieces int NOT NULL,
numMisloads int);
I'm trying to get a query to return sum(pieces)/sum(numMisloads) for a given employee. I have the following query but I get an error saying that since there is an aggregate all the returns need to have a valid aggregate.
SELECT lname, fname, (SUM(Record.pieces)/SUM(Record.numMisloads))
FROM Employee, Record Where Employee.id = Record.emp_id GROUP BY Employee.id;
Pretty stuck, any help would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这些情况下我所做的就是在 lname 上使用 FIRST(),因为 lname 总是相同的。
这感觉像是一个肮脏的解决方法,所以我希望有人能提出更好的解决方案。
What I do in those situations is using FIRST() on lname, because lname is always the same.
It feels like a dirty work-around so I hope somebody comes up with a better solution.