SQL-запрос в Apache Derby - PullRequest
       4

SQL-запрос в Apache Derby

1 голос
/ 19 мая 2011

Я работаю над побочным проектом с базой данных 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);

Я пытаюсь получить запрос на возврат суммы (штук) / суммы (numMisloads) для данного сотрудника.У меня следующий запрос, но я получаю сообщение об ошибке, в котором говорится, что, поскольку существует агрегат, все возвращаемые значения должны иметь действительный агрегат.

    SELECT lname, fname, (SUM(Record.pieces)/SUM(Record.numMisloads)) 
FROM Employee, Record Where Employee.id = Record.emp_id GROUP BY Employee.id;

Довольно застрял, любая помощь будет принята.

1 Ответ

1 голос
/ 19 мая 2011

В этих ситуациях я использую FIRST () для lname, потому что lname всегда одно и то же.Это похоже на грязный обходной путь, поэтому я надеюсь, что кто-то придумает лучшее решение.

SELECT FIRST(lname), FIRST(fname), (SUM(Record.pieces)/SUM(Record.numMisloads)) 
FROM Employee, Record Where Employee.id = Record.emp_id GROUP BY Employee.id; 
...