2011-05-19 1 views
1

Я работаю над побочным проектом с базой данных Apache Derby, и у меня возникают проблемы с запросом. У меня есть следующие две таблицы:SQL Query in 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; 

Pretty stuck, любая помощь будет оценена по достоинству.

+0

пытаются использовать '(SUM (Record.pieces)/SUM (Record.numMisloads)) AS varname' – Tomas

ответ

1

Что я делаю в этих ситуациях, это использование 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; 
+0

я думаю, что я не делаю группу по правильной – Ben

+0

Если вы LName и FName из ряда запрос, возвращает ли он желаемые результаты? Если да, то вы используете его правильно. – Jacob

+0

действительно дает желаемые результаты, если я выберу lname и fname hmmm .... – Ben

 Смежные вопросы

  • Нет связанных вопросов^_^