К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Вопрос по DELPHI

Гость
0 - 21.10.2012 - 14:49
Здравствуйте помогите разобраться ?
есть Adoconnection, ADOQuery1, DataSource1- все связанно и призанно к сетке DBGrid.
есть 2 таблицы в ACCESS :

1) - tab1
структура:

---------------------------
id | name_c | count_t |
---------------------------
1 | ручки | |
---------------------------
2 | карандаши | |
---------------------------
3 | мячи | |
---------------------------

2) - tab2
структура:

----------------------------
id | name_t | count_t |
--------------------------------
1 | мыч синий | 1 |
--------------------------------
1 | мяч красный | 15 |
--------------------------------
2 | ручка зеленая | 40 |
--------------------------------
2 | ручка красная | 12 |
--------------------------------

У меня Вопрос в следующем : Необходимо составить SQL запрос так что бы товар из 2 таблицы суммировался ( соответственно для каждой группы товара) и подставлялся в DBGrid к Первой таблице.

Пробовал для вывода второй таблицы так:

ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('SELECT SUM(name_t) As name_t FROM tab1 GROUP BY id ');
ADOQuery.Active:=True;

Все работает, НО МНЕ НУЖНО ЧТОБЫ РЕЗУЛЬТАТ СУММИРОВАНИЯ ДЛЯ КАЖДОЙ ГРУППЫ ПОДСТАВЛЯЛСЯ К ПЕРВОЙ ТАБЛИЦЕ.

Делал так :

k:=DBGrid1.DataSource.DataSet.fieldbyname('ID');

ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('SELECT name_c, (SUM(count_t) FROM tab2 WHERE id='+inttostr(k)+' ) AS count_t FROM tab1 ');
ADOQuery.Active:=True;

пишет: ошибка синтаксиса (пропушен оператор) в выражении запроса

ПОМОГИТЕ ПОЖАЛУЙСТА



Гость
1 - 21.10.2012 - 21:47
Что в "k"?
Выставь брейкпоинт на этом месте и глянь в "к" в процессе.


К списку вопросов






Copyright ©, Все права защищены