|
|
Регистрация | << Правила форума >> | 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)
|