|
|
Регистрация | << Правила форума >> | 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)
|
#9
|
|||
|
|||
Цитата:
|
#10
|
|||
|
|||
База Access?
На нормальной СУБД точно можно, а как в этом Access'е такое сделать - надо доку курить... |
#11
|
|||
|
|||
Цитата:
|
#12
|
||||
|
||||
Можно и на акцесе, только как я сказал чуть ранее:
Цитата:
Код:
select Chr(count(1)+64) as rn, t1.val1, t1.val2, t1.val1 + t1.val2 as Res from Таблица1 as t1 inner join Таблица1 as t2 on t1.id >= t2.id group by t1.val1, t1.val2 Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#13
|
|||
|
|||
Цитата:
|
#14
|
|||
|
|||
не, t1 и t2 - алиасы для таблиц. Как раз valX - это поля.
PS. В интернете что-то говорят о функции DCount, которая позволяет такое делать (получать последовательный номер записи). Поищи. |
#15
|
|||
|
|||
PS. В интернете что-то говорят о функции DCount, которая позволяет такое делать (получать последовательный номер записи). Поищи.[/quote]
DCOUNT возвращает общее число строк (записей) базы данных, соответствующих указанным критериям поиска и содержащих числовые значения. не подходит данная функция ((( |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|