Показать сообщение отдельно
  #9  
Старый 17.07.2008, 15:34
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если я правильно понял, то тебе нужна разбивка по клиентам.
Пусть ты вяжешь базы по ID - PersonID.
Тогда запрос будет такой:
Код:
SELECT PersonID, SUM(Cena) AS Summa FROM gfizio GROUP BY PersonID
Кстати, ";" в конце запроса не обязательна в этом случае.
Если ты хочешь видеть и фамилии, то они прекрасно JOIN'яться по PersonID. Пусть ФИО лежат в полях LastName, FirstName, MiddleName в таблице Persons. тогда запрос будет такой:
Код:
SELECT P.LastName, P.FirstName, P.MiddleName, SUM(G.Cena) AS Summa FROM gfizio G LEFT JOIN Persons P ON P.ID = G.PersonID GROUP BY P.LastName, P.FirstName, P.MiddleName

Только в этом случае ты получишь несколько записей для каждого клиента, которые тебе надо будет уже на паскале сложить и вывести, например, в Memo:
Код:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT P.LastName, P.FirstName, P.MiddleName, SUM(G.Cena) AS Summa FROM gfizio G LEFT JOIN Persons P ON P.ID = G.PersonID GROUP BY P.LastName, P.FirstName, P.MiddleName');
Query1.Open;
Query1.First;
Memo1.Lines.Clear;
While Not Query1.EOF Do
  Begin
    Memo1.Lines.Add(Format('%s %s %s = %d',[Query1.Fields[0].AsString,Query1.Fields[1].AsString,Query1.Fields[2].AsString,Query1.Fields[3].AsInteger]));
    Query1.Next;
  End;
Query1.Close; // Не забываем закрыть.

Это если я правильно понял вопрос.
Ответить с цитированием