2016-01-26 1 views
1

У меня есть небольшая база данных LibreOffice с данными о клиентах и ​​счетами-фактурами. Каждый счет-фактура состоит из n элементов.OpenOffice/LibreOffice Base SQL Group

Клиенты:

********************** 
* ID * Name * Adress * 
********************** 
* 0 * N1 *  A1 * 
* 1 * N2 *  A2 * 
********************** 

счетов-фактур:

******************************** 
* ID * CustomerID *  Date * 
******************************** 
* 0 *   0 * 01/01/1970 * 
* 1 *   0 * 08/02/1971 * 
******************************** 

Предметы:

*********************************** 
* ID * InvoiceID * Amount * Price * 
*********************************** 
* 1 *   0 *  12 * 12.95 * 
* 2 *   0 *  9 * 8.75 * 
* 3 *   1 *  29 * 8.75 * 
*********************************** 

Я хочу создать запрос со значением счета:

SELECT "invoices"."ID", SUM("items"."Amount" * "items"."Price") 
FROM "invoices", "items" 
WHERE "invoices"."ID" = "items"."InvoiceID" 
GROUP BY "invoice"."ID" 

До сих пор все работает. Но если я хочу добавить дополнительную информацию в запрос, например.

SELECT "invoices"."ID", "invoices"."Date", SUM("items"."Amount" * "items"."Price") 
FROM "invoices", "items" 
WHERE "invoices"."ID" = "items"."InvoiceID" 
GROUP BY "invoice"."ID" 

Получалось сообщение об ошибке Not in aggregate function or group by clause. Я попробовал это в phpmyadmin, и это сработало, поэтому я думаю, что синтаксис SQL должен быть в порядке. В чем проблема с моей операцией SQL?

+0

Общее правило GROUP BY гласит: «Если указано предложение GROUP BY, каждая ссылка столбца в списке SELECT должна либо идентифицировать столбец группировки, либо быть аргументом функции набора». Я попробую «GROUP BY» счета-фактуры ».« ID »,« счета-фактуры ».« Дата ». – jarlh

+0

Отлично. Это работает –

ответ

2

Вы должны включить «счета-фактуры». «Дата» в предложении group by.

+0

Повторил мой комментарий? – jarlh

+0

Mmh, не видел! – echo

+0

Все в порядке. Хорошего дня! – jarlh