Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2012, 10:45   #1
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию Запрос с выборкой Count

Маялся, не получается составить запрос, вроде бы простой.
Есть три таблицы org, agr, money
в первой организации, во второй договора, в третей деньги
вторая с первой связаны по id два-три и более к одному.
В третей отображаются данные по связи с первой и второй таблицей
то есть:

org
id.org | id_name | id.inn | id.kpp |
1 | Название 1 | 1234567890 | 098765432 |
2 | Название 2 | 1234567809 | 098765423 |
3 | Название 3 | 1234567089 | 098765243 |

agr
id.agr | id.org | id.name |
1 | 1 | Договор 1 |
2 | 1 | Договор 2 |
3 | 2 | Договор 3 |
4 | 3 | Договор 4 |
5 | 3 | Договор 5 |

money
id.money | id.org | id.agr | id.date_income | id_money |
1 | 1 | 1 | 11.07.2012 | Июнь |
2 | 1 | 1 | 13.07.2012 | Июль |
3 | 1 | 2 | 11.07.2012 | Июнь |
4 | 2 | 3 | 11.07.2012 | Июнь |
5 | 2 | 3 | 13.07.2012 | Июль |
6 | 3 | 4 | 11.07.2012 | Июнь |
7 | 3 | 5 | 11.07.2012 | Июнь |
8 | 3 | 5 | 13.07.2012 | Июль |
9 | 3 | 5 | 16.07.2012 | Август |

В итоге хочу получить по запросу следующее:

query1
id_org_name | id_inn | id_kpp | id_agr_name | id_count_money |
Название 1 | 1234567890 | 098765432 | Договор 1 | 2 |
Название 1 | 1234567809 | 098765432 | Договор 2 | 1 |
Название 2 | 1234567890 | 098765432 | Договор 3 | 2 |
Название 3 | 1234567089 | 098765432 | Договор 4 | 1 |
Название 3 | 1234567089 | 098765432 | Договор 5 | 3 |

подсчитывается количество для каждой записи по каждому договору.
единственно мне нужно будет условие where id_date_income between [vardate1] and [vardate2] которые будут вводиться пользователем.

Помогите пожалуйста.

Последний раз редактировалось SovereignSun; 17.07.2012 в 10:49.
SovereignSun вне форума Ответить с цитированием
Старый 17.07.2012, 11:09   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

group by под двум полям id.org, id.agr легко решает вашу проблему с нахождением количества оплат:
Код:
select org, agr, count(*) as id_count_money  from money
group by org, agr
дальше подвяжите этот запрос к основному и получите требуемый результат!

Последний раз редактировалось Serge_Bliznykov; 17.07.2012 в 11:12.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.07.2012, 11:56   #3
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Понял.. спасибо.. не знал, что group можно так использовать
SovereignSun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
COUNT с условием или как правильно построить запрос silent_lab SQL, базы данных 13 01.08.2011 12:00
SQL запрос с двойным COUNT lyle_200490 SQL, базы данных 4 24.11.2010 20:47
Запрос с выборкой NIKOLASCS SQL, базы данных 11 02.04.2010 07:20
Помогите с выборкой VRF Microsoft Office Excel 5 06.11.2008 01:45
Как оптимизировать запрос MySQL с выборкой из двух таблиц. Johnatan SQL, базы данных 6 13.04.2008 03:10