Каков рекомендуемый способ суммирования подробных записей в таблице SQLite, как в следующем коде SQL.Попросите пользователя просмотреть итоговые записи, в настоящее время в DBGrid, затем, когда все выглядит хорошо, пользователь может затем выделить строки и нажать кнопку «Обработано», которая должна затем обновить подробные записи с помощью «обработанного» кода.
В настоящее время я использую Delphi VCL, который имеет источник данных (файл SQLite), Devart UniDAC UniQuery и DBGrid.UniQuery имеет следующий код SQL:
SELECT PartNum, StoreLoc, CostCenter,
SUM( Weight )
FROM tblMaster
WHERE Weight > 0
GROUP BY PartNum, StoreLoc, CostCenter
HAVING Processed = 0
Это на самом деле идеально заполняет DBGrid, и я могу выбрать одну или несколько строк.Затем я смогу нажать кнопку, подтверждающую транзакции, которые должны изменить поле Обработано в подробных записях с 0 на 1.
CREATE TABLE tblMaster ( PartNum text, Weight real, Emp text, Defect
text, StoreLoc text, CostCenter text, Date text, Time text, Processed
text );
Вот некоторые примеры данных:
sqlite> select * from tblMaster
9986-0000|1.2|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0000|0.5|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0000|1.0|E1|D1|S2|CC1|6/28/2019|13:55|0
9986-0000|1.2|E1|D1|S3|CC1|6/28/2019|13:55|0
9986-0022|1.2|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0022|0.5|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0022|1.0|E1|D1|S2|CC1|6/28/2019|13:55|0
9986-0022|1.2|E1|D1|S3|CC1|6/28/2019|13:55|0
Единственный способ, которым я могу придумать, - это взять выделенные строки из DBGrid и просто прочитать каждую запись подробностей и обновить поле Обработано.