Topic: SQLEXecute in FastReport
Поправьте, пожалуйста, синтаксис команды в Memo
Ошибка - ')' expected
[SQLExecute(SELECT MAX(<Report."nSubs">,MasterData1) FROM <Report> WHERE <Report."npp">=MAX(<Report."npp">,MasterData1))]
My Visual Database → Reports → SQLEXecute in FastReport
Поправьте, пожалуйста, синтаксис команды в Memo
Ошибка - ')' expected
[SQLExecute(SELECT MAX(<Report."nSubs">,MasterData1) FROM <Report> WHERE <Report."npp">=MAX(<Report."npp">,MasterData1))]
[SQLExecute(SELECT MAX(<Report."nSubs">,MasterData1) FROM <Report> WHERE <Report."npp">=MAX(<Report."npp">,MasterData1))]
Нашла, что нужны ещё кавычки
SQLExecute('SELECT MAX(<Report."nSubs">,MasterData1) FROM <Report> WHERE <Report."npp">=MAX(<Report."npp">,MasterData1)')
Результат так же ошибка, но уже другая (см,скрин)
Скорей всего нельзя использовать в SQL запросе такие вещи как <Report."nSubs">,MasterData1, используйте просто названия полей, как в скриптах
Не получается. Возможно есть другой способ извлечь данные. В отчет передаются следующие поля nSubs, npp.
Из плана счетов nSubs - "номер счета" в БД символьный. Для корректного отображения порядка счетов и сумм групп счетов введено вспомогательное поле npp- "номер по порядку" числовой. Не могу правильно извлечь название итогов, чтобы отображалось:
Итого по 811.3.6 - 811.18
Пользовалась для извлечения MIN и MAX :
[IIF(MAX(<Report."npp">,MasterData1)=1,<Report."nSubs">,MIN(<Report."nSubs">,MasterData1))]
получается Итого по 811.10.1-811.18
nSubs npp
---------- ---------
811.3.6 1
811.6.1 2
811.6.4 3
811.6.5 4
811.6.7 5
811.8.3 6
811.8.4 7
811.8.5 8
811.8.6 9
811.8.8 10
811.8.9 11
811.9.1 12
811.9.2 13
811.9.4 14
811.9.5 15
811.10.1 16
811.10.2 17
811.10.3 18
811.10.4 19
811.10.6 20
811.10.7 21
811.10.11 22
811.10.12 23
811.10.13 24
811.15 25
811.16 26
811.17 27
811.18 28
Вышла из положения скриптом:
procedure Memo27OnAfterData(Sender: TfrxComponent);
var
schet, minS, maxS, gr, minNpp, maxNpp: string;
begin
schet:=<Report."nSubs">;
gr:=SQLEXecute('SELECT grup1 FROM balans WHERE nSubs="'+schet+'"'); //группа 1-го уровня
minNpp:=SQLEXecute('SELECT MIN(npp) FROM balans WHERE grup1='+gr); //минимальный № п/п в группе 1-го уровня
maxNpp:=SQLEXecute('SELECT MAX(npp) FROM balans WHERE grup1='+gr); //максимальный № п/п в группе 1-го уровня
minS:=SQLEXecute('SELECT MIN(nSubs) FROM balans WHERE grup1='+gr+' AND npp='+minNpp); //по минимальному №п/п вытаскиваем наименование счета
maxS:=SQLEXecute('SELECT MAX(nSubs) FROM balans WHERE grup1='+gr+' AND npp='+maxNpp); //по максимальному №п/п вытаскиваем наименование счета
Memo27.Text:=minS;
Memo28.Text:=maxS;
end;
My Visual Database → Reports → SQLEXecute in FastReport
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi