Форум на Kuban.ru (http://forums.kuban.ru/)
-   Веб-дизайн и программирование (http://forums.kuban.ru/f1030/)
-   -   Вопрос по DELPHI (http://forums.kuban.ru/f1030/vopros_po_delphi-3204571.html)

Samuilus 21.10.2012 14:49

Вопрос по DELPHI
 
Здравствуйте помогите разобраться ?
есть 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;

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

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

ars_2007 21.10.2012 21:47

Что в "k"?
Выставь брейкпоинт на этом месте и глянь в "к" в процессе.


Текущее время: 22:19. Часовой пояс GMT +3.