![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Код:
begin
qry1.Close; //Деактивируем запрос в качестве одной из мер предосторожности
qry1.SQL.Clear; // Стираем любой предыдущий запрос
qry1.SQL.Add('SELECT [Поле1], [Поле2], [Поле3]+[Поле4] AS summa FROM [таблица1] WHERE [Поле1]=:p1 AND [Поле2]=:p2'); //Назначаем свойству SQL текст "SELECT [Поле1], [Поле2], [Поле3]+[Поле4] AS summa FROM [таблица1] WHERE [Поле1]=:p1 AND [Поле2]=:p2"
qry1.Parameters.ParamByName('p1').Value := edt1.text;
qry1.Parameters.ParamByName('p2').Value := edt2.text;
qry1.Open; //Выполняем запрос и открываем набор данных
end; |
|
#2
|
|||
|
|||
|
Нифига не понял что надо. Вот это что-ли:
Код:
select
case
when field3-field4 = 1 then 'a'
when field3-field4 = 2 then 'b'
when field3-field4 = 3 then 'c'
else 'x'
end as some_new_field_name
from Table
where
field1=:f1 and field2 = :f2 |
|
#3
|
|||
|
|||
|
lmikle, у меня есть база данных, я вроде слепил для нее программу в которой есть кнопка. По нажатии этой кнопки программа должна сначала найти строки, где поле1 = edt1.text, а поле2=edt2.text. Затем в найденных строках программа должна из поля3 вычесть поле4 и присвоить буквы, поле3-поле4:=a (это в первой строке), затем сделать то же самое во второй строке и поле3-поле4:=b и так далее. Делается всё это через ADOQuery.
Последний раз редактировалось ЧайниКсНосикоМ, 12.12.2015 в 20:40. |
|
#4
|
|||
|
|||
|
непонятно вот это:
Цитата:
ЗЫ. По поводу фильтрации - за нее отвечает секция запроса WHERE, написанная через параметры, ну это и в твоем первоначальном коде есть... ЗЗЫ. Код "свиснул" где-то и теперь хочешь, что бы тебе его под твою задачу переделали?.. |
|
#5
|
||||
|
||||
|
Кажется я понял, что хочет автор. Похоже это просто ряд уравнений типа:
a := 1 + 1 b := 2 + 2 но тут есть одна сложность - для генерации буковок нужен порядковый номер записи в выборке. К тому-же в английском алфавите 26 букв, что тоже надо учесть в запросе. Для многих SQL серверов получить порядковый номер не проблема, но у каждого свой метод. А вот если сервера нет, тогда надо делать хитрый запрос генерирующий номер. Итак, правильно ля я понял задачу? |
|
#6
|
|||
|
|||
|
Цитата:
Ну тут я уже не уверен правильно ли я Вас понял )))) Ну вообщем да, опустим действие с поиском строк и получим для строки один а=поле3-поле4 для строки два b=поле3-поле4 и так далее. Ну соответственно цифры для первого примера беруться из строки 1 для второго из строки 2 из одних и тех же полей. |
|
#7
|
|||
|
|||
|
Цитата:
|
|
#8
|
|||
|
|||
|
Цитата:
Дык, небось поля текстовые, а для нормального сложения они должны быть цифрами. А складывает так потому, что это, явно, Access. Для нормального сложения надо либо менять тип полей, либо в запросе делать конвертацию типов. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
ЧайниКсНосикоМ (14.12.2015)
| ||