Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2013, 20:58   #1
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию ADOQuery.SQL.Text

Кинул на форму ADOQuery, в String list editor написал
SELECT SUM(AAA) FROM BBB WHERE [CCC]=100
Подключчил - работает.

Пытаюсь добавить туда же еще две аналогичные строчки:
SELECT SUM(AAA) FROM BBB WHERE [CCC]=200
SELECT SUM(AAA) FROM BBB WHERE [CCC]=300

Вопрос: как разделить (чем) разделить эти три строки, чтобы запрос работал. Ставил в конце строк '+', ';' , еще чета пытался ставить - не работает.

Идея взята у "POLI-SMEN" в теме

http://www.delphisources.ru/forum/sh...ad.php?t=25317

Или в String list editor так делать нельзя?
govorun1 вне форума Ответить с цитированием
Старый 15.11.2013, 21:03   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вставь между каждым запросом строчку UNION. И не мешало бы в каждом сделать, например, так: SUM(AAA) AS MySum
А можно и так
SELECT [CCC],SUM(AAA) FROM BBB WHERE [CCC] IN (100,200,300) GROUP BY [CCC]
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.11.2013 в 21:06.
Аватар вне форума Ответить с цитированием
Старый 15.11.2013, 21:14   #3
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Вставь между каждым запросом строчку UNION. И не мешало бы в каждом сделать, например, так: SUM(AAA) AS MySum
А можно и так
SELECT [CCC],SUM(AAA) FROM BBB WHERE [CCC] IN (100,200,300) GROUP BY [CCC]
Должны вычисляться 3 разных значения, которые потом размещу в 3 разных Editа. Информация будет отображаться на форме как статистика. UNION наверное соберет их в кучу, или нет?
govorun1 вне форума Ответить с цитированием
Старый 15.11.2013, 21:15   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Соберет и вернет три записи. Добавь [CCC] в каждый запрос, чтобы различать где что. А ещё лучше одним запросом с GROUP BY
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.11.2013 в 21:18.
Аватар вне форума Ответить с цитированием
Старый 16.11.2013, 12:35   #5
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Помучался и сделел отдельные ADOQuery.
Возникла другая беда.
Результат запроса вывожу в Edit
Edit1.Text := FloatToStr(ADOQuery1.Fields[0].AsFloat);

Если вычисленное значение 15,54 то в Editе показывает 15,54
Если вычисленное число 15,00 то в Editе показывает 15 без нолей.
Как исправить, чтоб целое число показывалось с двумя нолями.

В базе (Access) свойство поля - с плавающей точкой
DispleyFormat и Editformat везде стоят ,0.00
govorun1 вне форума Ответить с цитированием
Старый 16.11.2013, 13:12   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а так?
Код:
Edit1.Text := Format('%1.2f',[ADOQuery1.Fields[0].AsFloat]);
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Adoquery SQL-запрос qadhhj БД в Delphi 0 30.04.2012 15:44
ADOQuery и sql shatohingv БД в Delphi 5 14.10.2011 11:52
ADOQuery + SQL-выборка по дате!!! $T@LKER БД в Delphi 14 19.04.2010 11:34
при присвоении ADOQuery.SQL.Text значения DBLookupComboBox.KeyValue возникает ошибка namazi74 БД в Delphi 1 10.04.2010 07:20
ADOQuery.SQL skymaster Общие вопросы Delphi 1 15.06.2009 20:27