Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
9 / 9 / 2
Регистрация: 07.05.2013
Сообщений: 227
1

Delphi XE4 SQL запрос на подсчет суммы

03.05.2014, 11:10. Показов 1822. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составил запрос на подсчет суммы по критерию (Код_заказа (не ключевое)). И не могу вывести эту сумму в Edit. Вот код

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm8.Button3Click(Sender: TObject);
var SUMM: string;
begin
 //Цена заказа
 
DataModule1.ADOQ7_CYMMA_Zakaza.Close;
DataModule1.ADOQ7_CYMMA_Zakaza.SQL.Clear;
//Выбираем сумму
SUMM:='select SUM(Цена_продажи) as SUMMA from Заказано_на_продажу) where Код_заказа='+IntToStr(DBLookupComboBox4.KeyValue);
DataModule1.ADOQ7_CYMMA_Zakaza.SQL.Add((SUMM));
 
Edit3.Text := DataModule1.ADOQ7_CYMMA_Zakaza.FieldByName('SUMMA').AsString;
DataModule1.ADOQ7_CYMMA_Zakaza.Open;
end;
Пишет, что поле SUMMA не существует. Ссылается на вот этот код
Delphi
1
Edit3.Text := DataModule1.ADOQ7_CYMMA_Zakaza.FieldByName('SUMMA').AsString;
Как исправить? Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2014, 11:10
Ответы с готовыми решениями:

Delphi XE4 SQL запрос. Добавление записи в последнюю позицию DBGrid
Еще раз всем привет! Возникла вот такая загогулина. Есть поле Edit, в котором есть данные. Эти...

Delphi XE4 синтаксис sql запроса
Добрый день, Есть у меня такой запрос, который работает в Pl/SQL Developer. select t.mal_no,...

Создание SQL-запросов в Delphi XE4
Добрый день. Есть очень простой вопрос. Я работал в Delphi 7, а сейчас в Delphi XE4. Создал БД в...

Запрос на подсчет суммы
Здравствуйте. Мне надо создать такой набор данных, в котором после кождого месяца должна считаться...

6
29 / 29 / 19
Регистрация: 06.12.2013
Сообщений: 154
03.05.2014, 11:16 2
я же писал вам код, сначала выполните запрос, а потом результат присваивайте.
у вас
Delphi
1
2
Edit3.Text := DataModule1.ADOQ7_CYMMA_Zakaza.FieldByName('SUMMA').AsString;
DataModule1.ADOQ7_CYMMA_Zakaza.Open;
а надо

Delphi
1
2
DataModule1.ADOQ7_CYMMA_Zakaza.Open;
Edit3.Text := DataModule1.ADOQ7_CYMMA_Zakaza.FieldByName('SUMMA').AsString;
1
9 / 9 / 2
Регистрация: 07.05.2013
Сообщений: 227
03.05.2014, 12:31  [ТС] 3
OlegXE, на это пишет (" Ошибка синтаксиса в предложении From"). Тогда как?
0
29 / 29 / 19
Регистрация: 06.12.2013
Сообщений: 154
03.05.2014, 12:33 4
Скобка у тебя там лишняя
Заказано_на_продажу) <-- убери её
0
9 / 9 / 2
Регистрация: 07.05.2013
Сообщений: 227
03.05.2014, 20:47  [ТС] 5
А, я кажется знаю в чем ошибка. Одну минуточку....

Добавлено через 13 минут
Ошибка состоит вот в чем
Delphi
1
SUMM:='select SUM(Цена_продажи) as SUMMA from Заказано_на_продажу) where Код_заказа='+[U][B]IntToStr(DBLookupComboBox4.KeyValue[/B][/U]);
Вместо последнего значения таблицы в первом столбце я почему-то решил выбрать DBLookupComboBox4. Извините, это я недоглядел. Такой вопрос, как выбрать последнее значение в таблице я знаю
Delphi
1
+DBGrid2.Fields[0].
, только после точки что поставить?

Надо вот эту строку доработать.
Delphi
1
SUMM:='select SUM(Цена_продажи) as SUMMA from Заказано_на_продажу where Код_заказа='+DBGrid2.Fields[0].
Добавлено через 3 минуты
УРА Я РЕШИЛ
Delphi
1
DBGrid2.Fields[0].AsString;
Добавлено через 42 секунды
БОЛЬШОЕ СПАСИБО ВСЕМ, кто помогал!!!!!!!

Добавлено через 2 часа 53 минуты
Вот возник теперь такой вопрос. Вставка происходит, только не в той строчке, а создаёт как новую запись. Вот код кнопки "Подтвердить".
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm8.Button4Click(Sender: TObject);
begin
DBGrid2.DataSource.DataSet.Last;//Выделяем последнюю строку
//Подтвердить сумму заказа
DataModule1.ADOQ7_CYMMA_Zakaza.Close;
DataModule1.ADOQ7_CYMMA_Zakaza.SQL.Clear;
DataModule1.ADOQ7_CYMMA_Zakaza.SQL.Add('insert into Заказы (Сумма_заказа) values (:Сумма_заказа)');
 
DataModule1.ADOQ7_CYMMA_Zakaza.Parameters.ParamByName('Сумма_заказа').Value:=Edit3.Text;
 
DataModule1.ADOQ7_CYMMA_Zakaza.ExecSQL;
 
ShowMessage('Сумма заказа внесена, данные сохранены');
//обновить список с заказами
DataModule1.ADOT11_Zakazi.Active:=false;
DataModule1.ADOT11_Zakazi.Active:=true;
end;
Добавлено через 5 минут
Сейчас поясню. В таблице уже есть запись, только колонка в ней пустая. Надо вставить В эту пустую колонку (она является последней) информацию из Edit3. А у меня добавляет новую запись. Как мне тогда сделать?

Добавлено через 4 часа 55 минут
Народ подскажие ПЛЗ

Добавлено через 40 секунд
Народ подскажие ПЛЗ
0
29 / 29 / 19
Регистрация: 06.12.2013
Сообщений: 154
03.05.2014, 20:50 6
Если хочешь добавить данные в уже созданную строку, то смотри в сторону запроса UPDATE.
SQL
1
2
3
UPDATE таблица
SET новое_значение
WHERE условия_отбора;
0
9 / 9 / 2
Регистрация: 07.05.2013
Сообщений: 227
03.05.2014, 21:10  [ТС] 7
Пишет ошибка синтаксиса в инструкции Update
0
03.05.2014, 21:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2014, 21:10
Помогаю со студенческими работами здесь

Запрос на подсчет суммы с двух таблиц
Доброго времени суток) Есть бд сервис центр, для запроса нужны 4 таблицы - т.заказы(код_заказа,...

Запрос в БД на подсчет суммы значений и группировкой
Добрый вечер, уважаемые форумчане! Помогите сделать правильный запрос... Есть запрос в БД: ...

SQL-запрос в Delphi и в Access один и тот же, но в Delphi не работает
ри обращение к базе в Access я использую код: with ADOQueryMain do begin Active:=false;...

Sql запрос на подсчет и сохранение
Есть бд в Acces Товары (Код товара, Название, Цена, Единица измерения). Продажи (Код Товара, Дата...


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

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