У меня есть небольшая база данных 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?
Общее правило GROUP BY гласит: «Если указано предложение GROUP BY, каждая ссылка столбца в списке SELECT должна либо идентифицировать столбец группировки, либо быть аргументом функции набора». Я попробую «GROUP BY» счета-фактуры ».« ID »,« счета-фактуры ».« Дата ». – jarlh
Отлично. Это работает –