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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2012, 01:06   #1
Marina8
Пользователь
 
Регистрация: 05.12.2011
Сообщений: 17
По умолчанию INSERT Value( select)

Delphi, MySQL, AdoQuery

Помогите пожалуйста разобраться в чем ошибка!
Код:
ADOQuery8.SQL.Add('INSERT INTO tab (id,Год,Квартал, Сумма_вкладов_RUB) Values (1,2009,1,(SELECT SUM(Сумма_RUB) FROM vkladi  where Начало_периода between :first_date and :last_date and Квартал="1"))');
AdoQuery8.Parameters.ParamByName('first_date').DataType:=ftDateTime;
AdoQuery8.Parameters.ParamByName('last_date').DataType:=ftDateTime;
AdoQuery8.Parameters.ParamByName('first_date').Value:='01.01.2009';
AdoQuery8.Parameters.ParamByName('last_date').Value:='31.12.2009';
ADOQuery8.Active:=true;
Marina8 вне форума Ответить с цитированием
Старый 24.04.2012, 01:19   #2
Marina8
Пользователь
 
Регистрация: 05.12.2011
Сообщений: 17
По умолчанию

Код:
ADOQuery8.Active:=false;
ADOQuery8.SQL.Clear;
ADOQuery8.SQL.Add('INSERT INTO tab (id,Ãîä,Êâàðòàë, Ñóììà_âêëàäîâ_RUB) Values (1,2009,1,(SELECT SUM(Ñóììà_RUB) FROM vkladi  where (Íà÷àëî_ïåðèîäà between :first_date and :last_date and Êâàðòàë="1")');
AdoQuery8.Parameters.ParamByName('first_date').DataType:=ftDateTime;
AdoQuery8.Parameters.ParamByName('last_date').DataType:=ftDateTime;
AdoQuery8.Parameters.ParamByName('first_date').Value:='01.01.2009';
AdoQuery8.Parameters.ParamByName('last_date').Value:='31.12.2009';
ADOQuery8.Active:=true;
Marina8 вне форума Ответить с цитированием
Старый 24.04.2012, 02:46   #3
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

а так:
Код:
INSERT INTO tab (id,Год,Квартал, Сумма_вкладов_RUB) SELECT 1,2009,1, SUM(Сумма_RUB) FROM vkladi  where Начало_периода between :first_date and :last_date and Квартал='1'
=master= вне форума Ответить с цитированием
Старый 24.04.2012, 02:50   #4
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Цитата:
ADOQuery8.Active:=true;
а это что такое? это не селект, так нельзя.
=master= вне форума Ответить с цитированием
Старый 24.04.2012, 12:43   #5
Marina8
Пользователь
 
Регистрация: 05.12.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от =master= Посмотреть сообщение
а это что такое? это не селект, так нельзя.
Как нужно? Код пока не пробовала - нет delphi под рукой
Marina8 вне форума Ответить с цитированием
Старый 24.04.2012, 13:03   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Как нужно?
нужно выполнить команду:
Код:
ADOQuery8.ExecSQL;

кроме того, я бы КРАЙНЕ настойчиво рекомендовал переводить нужные даты (константы в параметрах) через функцию EncodeDate(), а не передавать её в запрос как строку! могут возникнуть трудноуловимые баго-глюки..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надпись Reboot and select proper boot device or insert boot media in selected boot device and press a key что значит Fat0307 Операционные системы общие вопросы 3 11.02.2012 22:48
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a key Walkman97 Операционные системы общие вопросы 4 04.06.2011 22:27
Запрос вида Insert..Select MySQL Svap SQL, базы данных 3 11.01.2011 19:11
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 mavlon_m SQL, базы данных 2 17.09.2009 15:28