![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запросы
dumka © (2007-11-27 09:13:00)Как в динамическом запросе извлечь из даты месяц и год. Ивсе это вставить или передать соответствующему полю.
Query3.aCTIVE:=False;
Query3.SQL.Clear;
Query3.SQL.Add('Insert into zarplat.db ');
Query3.SQL.Add('SELECT Tabeln_nom,FIO,SUM((Prioritet.Tarif + Dogovor.Oplata) * 0.183)as Zarp');
Query3.SQL.Add('FROM "dogovor.DB" Dogovor ') ;
Query3.SQL.Add(' INNER JOIN "firma.DB" Firma ') ;
Query3.SQL.Add(' ON (Firma.Kod_firm = Dogovor.Nom_dogovora) ');
Query3.SQL.Add(' INNER JOIN "menedcher.DB" Menedcher ');
Query3.SQL.Add(' ON (Menedcher.Tabeln_nom = Dogovor.Tab_nom)');
Query3.SQL.Add(' INNER JOIN "prioritet.db" Prioritet ');
Query3.SQL.Add(' ON (Prioritet.Prioritet = Dogovor.Prioritet)');
Query3.SQL.Add('GROUP BY Menedcher.Tabeln_nom, Menedcher.FIO ');
Query3.ExecSQL;
table1.Close;
table1.Open;
Вот это работает. Нужно добавить в
Query3.SQL.Add('SELECT Tabeln_nom,FIO,SUM((Prioritet.Tarif + Dogovor.Oplata) * 0.183)as Zarp');
Месяц и год.
dumka (2007-11-27 11:35:00) [21]
> После исправления ошибки, получишь следующие, у тебя запятых
> не хватает.
Запятые я расставила и модуль я подключила, что-то еще.
Anatoly Podgoretsky (2007-11-27 11:30:00) [22]
> Я так сделала, но что не так с функцией MonthOf
После исправления ошибки, получишь следующие, у тебя запятых не хватает.
Anatoly Podgoretsky (2007-11-27 11:28:00) [23]C чего ты решил что есть сервер?
Я думаю, что у нее Парадокс.
ЮЮ (2007-11-27 10:52:00) [24]
Returns the month of the year represented by a TDateTime value.
Unit
DateUtils
Category
datetime routines
Delphi syntax:
function MonthOf(const AValue: TDateTime): Word;
Выделенное говорит какой модуль надо подключить в uses, когда воземкает > Undeclared identifier
dumka (2007-11-27 10:45:00) [25]
> F1 отказала?
Нет, иногда глазам своим не верю
dumka (2007-11-27 10:43:00) [26]
> Query3.SQL.Add(
> 'SELECT Tabeln_nom,FIO,SUM((Prioritet.Tarif + Dogovor.Oplata)
> * 0.183)as Zarp' +
> IntToStr(MonthOf(Date())) + ', ' + IntToStr(YearOf(Date()))
> );
Я так сделала, но что не так с функцией MonthOf
Undeclared identifier:MonthOf
ЮЮ (2007-11-27 10:41:00) [27]
Returns the month of the year represented by a TDateTime value.
Unit
DateUtils
Category
datetime routines
Delphi syntax:
function MonthOf(const AValue: TDateTime): Word;
F1 отказала?
dumka (2007-11-27 10:36:00) [28]
> ЮЮ
Я знаю, вот в данной конструкции
> 'SELECT Tabeln_nom,FIO,SUM((Prioritet.Tarif + Dogovor.Oplata)
> * 0.183)as Zarp' +
> IntToStr(MonthOf(Date())) + ', ' + IntToStr(YearOf(Date()))
> );
MonthOf возвращет какой тип.
ЮЮ (2007-11-27 10:21:00) [29]Кроме полей в секции SELECT можно указывать и константы
Select Field1, Field2, 2, 'коммент' from Table
dumka (2007-11-27 10:13:00) [30]
> P.S. Cудя по синтаксису
> Insert into zarplat.db SELECT ...
> в таблице нет полей для месяца и года.
Сейчас будут...
Да я их убрала на время отладки.
dumka (2007-11-27 10:12:00) [31]
> megabyte
Клиентская БД.
Вот в цикле я знаю как, в запросе?
ЮЮ (2007-11-27 10:08:00) [32]> Я так делала в ACCESSE применяя функции: Month (Date), Year
> (Date)
В Paradox-e (BDE) нет Date.
Просто передавай с клинта (добавь в запрос)
Query3.SQL.Add(
'SELECT Tabeln_nom,FIO,SUM((Prioritet.Tarif + Dogovor.Oplata) * 0.183)as Zarp' +
IntToStr( MonthOf(Date())) + ', ' + IntToStr( YearOf(Date()))
);
P.S. Cудя по синтаксису
Insert into zarplat.db SELECT ...
в таблице нет полей для месяца и года.
megabyte (2007-11-27 10:07:00) [33]Тебе с клиента добавлять или с сервера?
Если с клиента, то используй стандартные функции для выделения года, месяца. Системная дата - встроенная переменная Date.
Если на сервере, то все зависит от СУБД.
dumka (2007-11-27 09:56:00) [34]
> ЮЮ
> из таблицы Dogovor? А если там их несколько? Всё-равно какой?
Все договора, если они не просрочены оплачиваются каждый месяц, сумма по договору делится на равные доли.
dumka (2007-11-27 09:50:00) [35]
> месяц и год даты какой записи? из таблицы Dogovor?
Дата нужна не из договора, а системная.
Т.е. Группируя данные из нескольких таблиц я записываю их в зарлатную таблицу и вот приетом нужно добавить к Табельному номеру, ФИО и Заппл, месяц, год.
Я так делала в ACCESSE применяя функции: Month (Date), Year (Date)
ЮЮ (2007-11-27 09:31:00) [36]> нужно добавить месяц и год в зарплатную таблицу
месяц и год даты какой записи? из таблицы Dogovor? А если там их несколько? Всё-равно какой? Максимальной? А в следующем месяце опязь будешь "начислять зарплату" за эту запись?
З.Ы. Из твоей структуры только тебе понятно, что к чеиу.
dumka (2007-11-27 09:25:00) [37]Да я согласна. Но.
В конечном результате нужно добавить месяц и год в зарплатную таблицу при добавлении записей.
Johnmen (2007-11-27 09:24:00) [38]
> Вот это работает.
Да ну?
ЮЮ (2007-11-27 09:17:00) [39]> Нужно добавить Месяц и год.
Какой? Ведь у тебя группировка по BY Menedcher.Tabeln_nom, Menedcher.FIO