|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2014, 11:11 | #1 |
Пользователь
Регистрация: 12.07.2012
Сообщений: 65
|
Подсчет одним запросом. Возможно ли?
Доброго времени суток!
В процессе разработки отчета возникла задача относительно "хитрого" подсчета. Время поджимало - решил тремя запросами и частичным расчетом на клиенте. Но чувствую, то ли практики не хватает с SQL, то ли воображения. Посему, прошу ликбеза. Движок БД - PostgreSQL 9.3.2 Усеченная структура БД Clients - хранит карточки клиентов Service - хранит карточки обслуживаний Service2Clients - хранит связки клиентов и обслуживаний (многие-к-многим) RubricaNames - хранит каталог рубрикаторов Rubricator - хранит рубрики по всем рубрикаторам Points2Rubrica - хранит привязки значений по рубрикам к различным сущностям БД (например, к обслуживаниям) Задача Найти количество обслуживаний клиентов за период по группе рубрикаторов. Моя неправильная реализация Код:
Неправильно следующее
Вообщем ... вот, ай нид хелп!
Мои программные ништяки ≡ https://majestio.info
|
28.10.2014, 11:56 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А примерно так
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.10.2014, 12:12 | #3 |
Пользователь
Регистрация: 12.07.2012
Сообщений: 65
|
Попробовал - результаты совсем левые, все числа в 5-8 раз выше. Закономерности не заметил.
Мои программные ништяки ≡ https://majestio.info
|
28.10.2014, 12:24 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
а так
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.10.2014, 12:34 | #5 |
Пользователь
Регистрация: 12.07.2012
Сообщений: 65
|
Нет, получается в первом ответе все верно - ни одно значение не превышает общее количество обслуженных клиентов. Сорри за поспешный вывод!)
Еще только одного не хватает в запросе - количества обслуживаний за указанный период, к которым не было ни одной привязки по указанным рубрикаторам.
Мои программные ништяки ≡ https://majestio.info
|
28.10.2014, 12:53 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
т.е. записей Service не имеющих ссылок с Service2Clients? Наверно только подзапросом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.10.2014, 13:05 | #7 | |
Пользователь
Регистрация: 12.07.2012
Сообщений: 65
|
Цитата:
Не имеющих привязки ни по одной из рубрик (90,91,92,93,94,134). Иными словами - клиентов, получивших обслуживание, которое по указанным рубрикам вообще не рубрицировались.
Мои программные ништяки ≡ https://majestio.info
|
|
28.10.2014, 15:47 | #8 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Цитата:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 28.10.2014 в 15:55. |
||
28.10.2014, 15:54 | #9 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,778
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
выборка одним запросом | limon142 | PHP | 1 | 25.05.2014 20:18 |
Выборка и подсчет кол-ва записей одним запросом | WennY | SQL, базы данных | 1 | 02.07.2013 16:00 |
Выбрать данные из 2 таблиц одним запросом | Linel | SQL, базы данных | 4 | 16.02.2011 15:29 |
Обновление двух строк одним запросом | L_M | SQL, базы данных | 5 | 03.02.2011 02:01 |
BETWEEN и LIKE одним запросом | Pinya | SQL, базы данных | 9 | 19.08.2008 11:30 |