Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
1

Одним запросом вычесть и прибавить

26.12.2017, 19:41. Показов 1038. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
можно одним запросам вычесть и потом прибавить
одна таблица один столбец и две строки,
с одной строки вычесть и прибавить вдругую
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2017, 19:41
Ответы с готовыми решениями:

Добавить несколько строк одним запросом
есть таблица, хочу вставить несколько строк адним запросам, есть код ELT(FIELD( PREPARE вот...

Как добавить в таблицу mdb файла Аксесса несколько записей одним запросом?
Собственно вопрос в теме. Искал по инету, но ничего путного не нашел. (хотя, может быть плохо...

Массив: Ко всем нулевым элементам прибавить N, из всех положительных - вычесть А, ко всем отрицательным - прибавить B...
Дан массив x(10). Ко всем нулевым элементам прибавить N, из всех положительных элементов вычесть А,...

Если число нечётное, то прибавить 1, если чётное, то вычесть 3, если равно 0, то прибавить 10
Дано целое число. Если число нечётное, то прибавить 1. Если число чётное, то вычесть 3. Если число...

15
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,130
Записей в блоге: 3
26.12.2017, 20:08 2
SQL
1
SELECT a, a+b, a+b-c
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
26.12.2017, 20:34  [ТС] 3
qwertehok, вот один так делаю
Delphi
1
2
3
4
5
6
7
with Query do
  begin
   Active:=false;
   SQL.Clear;
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`+'''+edit2.Text+''' WHERE `all_sum`.`имя`=''kkkk'';');
   ExecSQL;
  end;
а второй как тамже сделать не знаю

Добавлено через 16 минут
Цитата Сообщение от qwertehok Посмотреть сообщение
SELECT a, a+b, a+b-c
причем тут SELECT не понимаю под запросом надо эта всё делать ?

Добавлено через 3 минуты
может не объяснил хорошо?
на форме есть какое то число надо чтоб эта число вычесть у адной страки и прибавить вдругую
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
26.12.2017, 21:25 4
лучше привести пример. нарисовать даже
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
26.12.2017, 21:33  [ТС] 5
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
with Query do
  begin
   Active:=false;
   SQL.Clear;
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`+'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение'';');
   ExecSQL;
  sleep(50);
   Active:=false;
   SQL.Clear;
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`-'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение_2'';');
   ExecSQL;
  end;
вот так выглядит щас запрос.
работает конечно хорошо но хотелось бы как лучше
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,130
Записей в блоге: 3
26.12.2017, 22:00 6
Лучший ответ Сообщение было отмечено kobakoba7 как решение

Решение

Цитата Сообщение от kobakoba7 Посмотреть сообщение
причем тут SELECT
ты же про апдейт ничего не написал, я написал SELECT

Цитата Сообщение от kobakoba7 Посмотреть сообщение
вот так выглядит щас запрос.
убрать sleep

чем тебе сейчас запрос не устраивает?
можешь сделать так

Delphi
1
2
3
4
5
   Active:=false;
   SQL.Clear;
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`+'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение'';');
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`-'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение_2'';');
   ExecSQL;
1
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
26.12.2017, 23:57  [ТС] 7
qwertehok, спасиба
Цитата Сообщение от qwertehok Посмотреть сообщение
ты же про апдейт ничего не написал, я написал SELECT
я подумал что так будет ясна
ладна спасибо

Добавлено через 1 час 36 минут
qwertehok,
SQL
1
2
3
4
5
   Active:=FALSE;
   SQL.Clear;
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`+'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение'';');
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`-'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение_2'';');
   ExecSQL;
не работает запрос синтаксическая ошибка пишет
не могу найти где
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
27.12.2017, 00:00  [ТС] 8
вот скрин ошибки
то есть на вторую строку указывает даже если местами поменять все равно на вторую
Миниатюры
Одним запросом вычесть и прибавить  
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,130
Записей в блоге: 3
27.12.2017, 00:07 9
а твои запросы работают в mySQL?
а разве не надо между запросами ";" ставить?
0
MyEternity
27.12.2017, 15:30
  #10

Не по теме:

Цитата Сообщение от qwertehok Посмотреть сообщение
а твои запросы работают в mySQL?
а разве не надо между запросами ";" ставить?
ЕМНИП Ему надо последовательно их выполнять. Либо использовать Batch компонент для этого.

0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
27.12.2017, 17:57  [ТС] 11
MyEternity, что значит последовательно
как умения изначальна вариант был?
Цитата Сообщение от qwertehok Посмотреть сообщение
а разве не надо между запросами ";" ставить?
а там стоят на обеих строках в конце
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,130
Записей в блоге: 3
27.12.2017, 18:59 12
kobakoba7, попробуй 2 запроса выполнить в какой-нибудь графической штуке
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
27.12.2017, 19:36  [ТС] 13
сам myadmin исполняется если вы эта имейте виду

Добавлено через 17 минут
mysql менеджер
есть умения такой программа, оттуда тоже исполняет
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,130
Записей в блоге: 3
27.12.2017, 20:27 14
тогда показывай код
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 301
27.12.2017, 20:51  [ТС] 15
qwertehok,
Цитата Сообщение от qwertehok Посмотреть сообщение
тогда показывай код
на верху уже показал
SQL
1
2
3
4
5
   Active:=FALSE;
   SQL.Clear;
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`+'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение'';');
   SQL.Add('UPDATE `all_sum` SET `all_sum`.`sum_total`=`all_sum`.`sum_total`-'''+edit2.Text+''' WHERE `all_sum`.`name`=''значение_2'';');
   ExecSQL;
проста поменял слова (значение и значение_2)
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,130
Записей в блоге: 3
28.12.2017, 07:45 16
перед ExecSQL вставь Query.SQL.SaveToFile(путь)
из файла возьми запрос и выполни его
0
28.12.2017, 07:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2017, 07:45
Помогаю со студенческими работами здесь

Пожалуйста нужно разобраться с запросом Mysql! Одним запросом из двух таблиц / MySQL
У меня на главной странице существует вот такой запрос (он ниже), который вытаскивает из таблицы...

К отрицательным элементам массива D(m,n) прибавить S, а из положительных вычесть X
К отрицательным элементам массива D(m,n) прибавить S, а из положительных вычесть X Оформить как...

Процедуры. К отрицательным элементам массива D(m,n) прибавить S, а из положительных вычесть X
Процедуры. К отрицательным элементам массива D(m,n) прибавить S, а из положительных вычесть X: ...

Из одной даты вычесть другую и прибавить несколько дней
Всем доброго времени суток! И снова у меня вопрос: Есть такая интересная задача которую я не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru