|
#1
|
|||
|
|||
SQL запрос
Всем привет, в SQL я совсем туп туп и совсем забыл как на учебе мы делали запросы.
В общем у меня есть таблица блюда(в ней есть столбец 'Выход(грамм)'), вот мне нужно чтобы в таблице ингредиенты_блюда(в ней есть столбец 'количество(грамм)') считались все кол-ва ингредиентов и заносились автоматически в таблицу блюда в столбец 'Выход(грамм)'. Вот сама база данных, если вы не поняли что мне надо сделать. |
#2
|
|||
|
|||
и мне надо sql запрос сделать в delphi, у меня есть adotable и datasource
|
#3
|
|||
|
|||
Код:
adoquery1.SQL.Add('select ингредиенты_блюда.ID_блюда, SUM(ингредиенты_блюда.Количество)'); adoquery1.SQL.Add('from блюда.Выход'); adoquery1.SQL.Add('GROUP BY ингредиенты_блюда.ID_блюда '); Последний раз редактировалось kastawow, 27.03.2011 в 14:13. |
#4
|
||||
|
||||
Скорее всего вам так надо:
Код:
select блюда.ID_блюда, SUM(ингредиенты_блюда.Количество) from блюда inner join ингредиенты_блюда on ингредиенты_блюда.ID_блюда=блюда.ID_блюда GROUP BY блюда.ID_блюда Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Здравствуйте.! Делаю вот такой запрос Select rm.id,rm.d,rm.fio,rm.nom,rm.pk,rm.m,rm.ma,rm.k,rm. t_f,rm.pf,rm.km,rm.s
From rm as rm where rm.fio=:'w' запрос выполняется в AdoQuery.SQL.string. вот код....на событие. DBGrid1.DataSource:=DM4.DS_test; DM4.ADOQuery_test.Active:=false; DM4.adoquery_test.Parameters.ParamByName('w').Valu e := edit6.text; DM4.ADOQuery_test.Active:=true; и я получаю..даные..только после того как только полностью.строка совпадет..с данными в параметре...А МНЕ НУЖНО ЧТО БЫ У МЕНЯ ВЫВОДИЛИСЬ ДЫНЫЕ СРАЗУ ПОСЛЕ ВЫВОДА ПЕРВОГО СИМВОЛА. КАК ЭТО СДЕЛАТЬ ПОДСКАЖИТЕ...ПОЖАЛУЙСТА.!!! |
#6
|
||||
|
||||
Во первых параметр в запросе описывается без кавычек.
Во вторых, если вы хотите искать по части значения то надо использовать Like. В итоге будет так: Код:
Select rm.id,rm.d,rm.fio,rm.nom,rm.pk,rm.m,rm.ma,rm.k,rm. t_f,rm.pf,rm.km,rm.s From rm as rm where rm.fio like :w Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
Цитата:
Спасибо...Я так и делаю.... а код попробую....потом отпишусь. |
#8
|
|||
|
|||
Что то не получается ...не выводит даных..по первому символу...
делаю. procedure TForm_obspisok.Edit1Change(Sender: TObject); begin DBGrid1.DataSource:=DM4.DS_ObSP; DM4.ADOQuery_ObSP.Active:=false; DM4.ADOQuery_ObSP.Parameters.ParamByName('w').Valu e:=Edit1.Text; DM4.ADOQuery_ObSP.Active:=True; DM4.ADOQuery_ObSP.Last; end; Select o.id, o.nam From obspisok as o where o.nam like :w |
#9
|
||||
|
||||
Код:
DM4.ADOQuery_ObSP.Parameters.ParamByName('w').AsString := Edit1.Text + '%'; |
#10
|
|||
|
|||
Цитата:
пишет ошибку [DCC Error] obspisok.pas(41): E2003 Undeclared identifier: 'AsString' Последний раз редактировалось iegrec, 08.04.2011 в 11:09. |
#11
|
||||
|
||||
С ADO давно не работаю, значит используй VALUE вместо AsString, возможно даже придется так:
Код:
DM4.ADOQuery_ObSP.Parameters.ParamByName('w').Value:= QuotedSTR(Edit1.Text + '%'); |
#12
|
|||
|
|||
Непойму как но заработало..
DM4.ADOQuery_ObSP.Parameters.ParamByName('dsp').Va lue :=Edit1.Text + '%'; Спасибо...вам... |