Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычисляемое поле 
:(
    Опции темы
Lola8669
Дата 14.6.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 24.1.2009

Репутация: нет
Всего: нет



Народ, помогите, пожалуйста, сделать вычисляемое поле SUM()!
Завтра для защиты программа должна работать!!!
У меня есть 2 DBGrid'a, они через DataSource1 и DataSource1 подключаются
 к IBTableItogRes (поля: ID_STUDENT, ID_GRUPPI_GPO, SEMESTR, OCENKA, AUTO_BALLI) и
 к IBTableUspevaemost (поля: ID_STUDENT, ID_GRUPPI_GPO, SEMESTR, BALLI).
 
Нужно, чтобы в поле AUTO_BALLI показывалась сумма баллов из столбца BALLI.
 
Например, DBGrid1:    ID_STUDENT     ID_GRUPPI_GPO     SEMESTR     OCENKA      AUTO_BALLI
                                             1                            1                       3                                     40                 

                   DBGrid2:    ID_STUDENT     ID_GRUPPI_GPO     SEMESTR        BALLI
                                              1                            1                       3              10
                                              1                            1                       3              10
                                              1                            1                       3              20

PM MAIL ICQ Skype   Вверх
ParaNO1k
Дата 14.6.2009, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Попробуй компонент ADOQuery, и в нем написать SQL запрос:
Код

Select ItogRes.ID_STUDENT, ItogRes.ID_GRUPPI_GPO, ItogRes.SEMESTR, ItogRes.OCENKA, SUN(Uspevaemost.BALLI) as AUTO_BALLI
FROM ItogRes, Uspevaemost;

И это все будет выводится в 1 DBGrid'е.
PM MAIL ICQ   Вверх
Romikgy
Дата 14.6.2009, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



имена таблиц дай ,
видать легче использовать TQuery в этой ситуевине


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Lola8669
Дата 14.6.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 24.1.2009

Репутация: нет
Всего: нет



Ошибку выдаёт: invalid  expression in the select list (not contained in either an aggregate function or the GROUP BY CLAUSE)
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 14.6.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



ParaNO1k, не SUN, а SUM ? smile 
Lola8669, не SUN, а SUM ? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Lola8669
Дата 14.6.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 24.1.2009

Репутация: нет
Всего: нет



а я и вводила SUM =)
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 14.6.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Lola8669 @ 14.6.2009,  21:39)
а я и вводила SUM =)

Если просто сумму выбрать - будет работать?
Код

Select SUM(Uspevaemost.BALLI) as AUTO_BALLI FROM Uspevaemost;


Это сообщение отредактировал(а) Данкинг - 14.6.2009, 20:47


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Lola8669
Дата 15.6.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 24.1.2009

Репутация: нет
Всего: нет



Цитата(Данкинг @ 14.6.2009,  20:47)

Если просто сумму выбрать - будет работать?
Код

Select SUM(Uspevaemost.BALLI) as AUTO_BALLI FROM Uspevaemost;

да, работает, но мне нужно, чтобы в другом гриде (таблице результат появлялся)
PM MAIL ICQ Skype   Вверх
Akella
Дата 15.6.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Так напиши запрос для другого
PM MAIL   Вверх
Lola8669
Дата 15.6.2009, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 24.1.2009

Репутация: нет
Всего: нет



Вот запрос 
Код
select ITOGOVII_RESULTAT.AUTO_BALLI, 
ITOGOVII_RESULTAT.BALLI, 
ITOGOVII_RESULTAT.DATA_SDACHI, 
ITOGOVII_RESULTAT.ID_GRUPPI_GPO, 
ITOGOVII_RESULTAT.ID_STUDENT, 
ITOGOVII_RESULTAT.OCENKA, 
ITOGOVII_RESULTAT.PRIMECHANIE, 
ITOGOVII_RESULTAT.SEMESTR,
SUM(USPEVAEMOST_STUD.BALLI) as AUTO_BALLI 
from ITOGOVII_RESULTAT, USPEVAEMOST_STUD
inner join USPEVAEMOST_STUD on ITOGOVII_RESULTAT.ID_STUDENT=USPEVAEMOST_STUD.ID_STUDENT and ITOGOVII_RESULTAT.SEMESTR=USPEVAEMOST_STUD.SEMESTR
group by ITOGOVII_RESULTAT.ID_STUDENT, ITOGOVII_RESULTAT.ID_GRUPPI_GPO, ITOGOVII_RESULTAT.SEMESTR




а вот ошибка, когда в true пытаюсь поставить IBQuery: Ambiguous field name between table USPEVAEMOST_STUD and table USPEVAEMOST_STUD .ID_STUDENT.
PM MAIL ICQ Skype   Вверх
Akella
Дата 15.6.2009, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Lola8669 @  15.6.2009,  11:06 Найти цитируемый пост)
Ambiguous field name

а перевести не судьба?

Добавлено через 1 минуту и 37 секунд
Цитата(Lola8669 @  15.6.2009,  11:06 Найти цитируемый пост)
SUM(USPEVAEMOST_STUD.BALLI) as AUTO_BALLI 

Попробуй так
as AUTO_BALLI_USPEVAEMOST_STUD

Добавлено через 2 минуты и 41 секунду
И вообще используй сокращённые псевдонимы, а то.... 
"Буквицы сии зело многочисленны, при том тяжек труд их разбирать." ©

Добавлено через 14 минут и 43 секунды
Цитата(Lola8669 @  15.6.2009,  11:06 Найти цитируемый пост)
select ITOGOVII_RESULTAT.AUTO_BALLI, 


Цитата(Lola8669 @  15.6.2009,  11:06 Найти цитируемый пост)
SUM(USPEVAEMOST_STUD.BALLI) as AUTO_BALLI 

неужели не видно, что у тебя на выходе два поля с одинаковыми названиями?
PM MAIL   Вверх
Lola8669
Дата 15.6.2009, 12:38 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 24.1.2009

Репутация: нет
Всего: нет



а вот так:
Код

UPDATE ITOGOVII_RESULTAT SET AUTO_BALLI = (SELECT SUM(BALLI) 
FROM USPEVAEMOST_STUD
 WHERE  USPEVAEMOST_STUD.ID_STUDENT = ITOGOVII_RESULTAT.ID_STUDENT AND  
USPEVAEMOST_STUD.ID_GRUPPI_GPO = ITOGOVII_RESULTAT.ID_GRUPPI_GPO AND  
USPEVAEMOST_STUD.SEMESTR = ITOGOVII_RESULTAT.SEMESTR) 
WHERE AUTO_BALLI IS NULL




только ошибка теперь: IBQueryItogRes field 'ID_GRUPPI_GPO' no found
PM MAIL ICQ Skype   Вверх
Akella
Дата 15.6.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Опять за тебя переводить?

Добавлено через 59 секунд
Поле ID_GRUPPI_GPO не найдено, т.е. НЕТ такого поля в таблице!
PM MAIL   Вверх
Lola8669
Дата 15.6.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 24.1.2009

Репутация: нет
Всего: нет



Сё, пасибо, разобралась =)
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.