![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно сложить несколько полей? [D6, dBase, FoxPro, Paradox]
DimonS © (2005-09-19 05:43:00)Добрый день всем. Имеем: Query. Нужно при открытии БД в одно поле записать сумму нескольких других полей этой же таблицы. Как правильно составить запрос?
ANB (2005-09-19 10:32:00) [1]
> DimonS © (19.09.05 10:15) [9]
Смотреть описание UPDATE в справке
DimonS (2005-09-19 10:15:00) [2]Здесь как раз второе. Поле нужно для выгрузки значений его в 1с. Так что значения действительно должны храниться в этой бд.
>отдельным запросом вычислять и записывать (да еще при открытии таблицы)
Не обязательно при открытии, нужно еще во время работы приложения, а сразу вычислить нельзя по другим причинам.
msguns (2005-09-19 09:49:00) [3]Я все же вообще не понял, что надо-то ?
Что значит
Нужно при открытии БД в одно поле записать сумму нескольких других полей этой же таблицы.
вместе с
Да, поле должно существовать.
?
Поле должно существовать в полученом на клиенте (приложении) наборе данных ? Или непосредственно в таблице БД ?
Если 1-е, то в [5] ответ, только, разумеется, вместо ExecSQL (применяется для записи в БД) надо Open (применяентся при извлечениях данных из БД)
Если 2-е, то [7], хотя у меня сильное подозрение, что это мура какая-то: отдельным запросом вычислять и записывать (да еще при открытии таблицы) сумму, если ее можно расчитать сразу же при модификации (вставке) записи. Не говоря уже о том, зачем вообще хранить в БД поля, получаемые как результат из других полей этой же записи.
ЗЫ. ИМХО, вопрос надо формулировать яснее, тогда и не будет длинных гаданий.
ЮЮ (2005-09-19 09:21:00) [4]QZ.Open.
Или с текстом в запросе
UPDATE Table
SET Usl = Us+SMRS+SMR
WHERE ...
QZ.ExecSQL;
если поле реально существует в таблице. Надеюсь, что это все-таки не так :)
Ильш (2005-09-19 08:53:00) [5]может в where ? ;)
DimonS (2005-09-19 08:37:00) [6]Пишу такой код:
QZ.Close;
QZ.SQL.Clear;
QZ.SQL.Add('select Us+SMRS+SMR as Usl from '+Zarq+' where (P="'+MaskEdit1.Text+'")');
QZ.ExecSQL;
И ничего не происходит. Где ошибка зарылась?
Ильш (2005-09-19 07:18:00) [7]select pole1+pole2 as pole_summ from table1
DimonS (2005-09-19 06:40:00) [8]>Fedia
Да, поле должно существовать.
>Ильш
А кусок кода можно?
Ильш (2005-09-19 06:10:00) [9]pole1+pole2
Fedia (2005-09-19 06:10:00) [10]А поле, содержащее сумму других полей обязательно должно находиться в таблице в БД? Может быть, просто сделать вычисляемое поле при запросе?