Лучший способ обновить подробные записи из сводного оператора SQL в Delphi - PullRequest
0 голосов
/ 29 июня 2019

Каков рекомендуемый способ суммирования подробных записей в таблице 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 и просто прочитать каждую запись подробностей и обновить поле Обработано.

...