| 
| 
 | Вопрос # 3 559/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Проблема такая, используя компонент Query и его свойство SQL я создаю запрос. Затем мне нужно профильтровать вычисляемое  в запросе поле, но оно не профильтруется. Пытался запихнуть условие фильтрации прям в свойство SQL, но выдает не понятную ошибку.  Прошу помоч как можно реализовать: необходимо чтобы вывелись записи где поле sum(prisutstvie)>1,  имеется ввиду поле которое мы получили после группировки, указанной в SQL коде ниже.
 Приложение:Переключить в обычный режим select raspisanie.gruppi, student.familiya, student.imya, student.otchestvo, sum(prisutstvie)from raspisanie, zhurnalpos, studentwhere  (student.zach = zhurnalpos.zachetki)and (raspisanie.idzanyatiya=zhurnalpos.idzanyatiya)group by raspisanie.gruppi, student.familiya, student.imya, student.otchestvo   
|  |   Вопрос задал: fff (статус: Посетитель)Вопрос отправлен: 22 декабря 2009, 16:20
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, fff!что бы фильтровать "группированное поле", существует ключевое слово HAVING (читать можно тут http://ru.wikipedia.org/wiki/HAVING и тут http://www.cyberguru.ru/database/sql/sql-standards-overview-page7.html).
 Поэтому для данного запроса скорее всего должно сработать такое выражение
 
 SELECT raspisanie.gruppi, student.familiya, student.imya, student.otchestvo, sum(prisutstvie)
FROM raspisanie, zhurnalpos, student
WHERE  (student.zach = zhurnalpos.zachetki)
AND (raspisanie.idzanyatiya=zhurnalpos.idzanyatiya)
GROUP BY raspisanie.gruppi, student.familiya, student.imya, student.otchestvo
HAVING sum(prisutstvie) > 1 Хотя конечно лучше сделать временное поле и вынести это туда, что бы два раза не вычислять суму. Но разные движки SQL это делают по разному...
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 22 декабря 2009, 17:01
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо, работает будем думать дальше :) |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |