|
|
|
Помогите с запросом пожалуйста
|
|||
|---|---|---|---|
|
#18+
Таблица "Договоры". Клиент может иметь заключенные договоры разных типов в одном или нескольких банках contract Договоры ------------ id int идентификатор договора, первичный ключ type_id int тип договора, внешний ключ id_client int клиент, внешний ключ id_bank int банк, внешний ключ stat int статус договора (0 - действующий, 1 - недействующий) name varchar(30) номер договора Нужно написать запрос, возвращающий: Список открытых договоров, пронумерованных по порядку (1,2,3,... без пропусков номеров) для каждого банка. Эти номера не содержатся в таблице, т.е. должны быть вычисляемым полем. Т.е., №№ 1,2,3, ..., N для банка A, 1,2,3, ..., M для банка B, и т.д. Написать запрос, выводящий список id клиентов у которых нет договоров в самом крупном банке (с максимальным кол-вом открытых договоров) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 16:09:15 |
|
||
|
Помогите с запросом пожалуйста
|
|||
|---|---|---|---|
|
#18+
Ann_Sky, ставь эти номера на клиенте. Это очень легко. А для СУБД это не та задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 16:10:25 |
|
||
|
Помогите с запросом пожалуйста
|
|||
|---|---|---|---|
|
#18+
Ann_Sky Нужно написать запрос, возвращающий: Список открытых договоров, пронумерованных по порядку (1,2,3,... без пропусков номеров) для каждого банка. Эти номера не содержатся в таблице, т.е. должны быть вычисляемым полем. Т.е., №№ 1,2,3, ..., N для банка A, 1,2,3, ..., M для банка B, и т.д. FAQ: Нумерация строк и другие вопросы про использование переменных Ann_SkyНаписать запрос, выводящий список id клиентов у которых нет договоров в самом крупном банке (с максимальным кол-вом открытых договоров) Напиши подзапрос, находящий "самый крупный банк" (интересно, что ты собираешься делать, если таких более одного?). На его основе напиши запрос на выборку клиентов, не имеющих договоров в этом банке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 16:38:11 |
|
||
|
Помогите с запросом пожалуйста
|
|||
|---|---|---|---|
|
#18+
MasterZiv, вы имеете ввиду вот так : SELECT ID_CLIENT, NAME, ID_BANK FROM contract where STAT=0 GROUP by ID_CLIENT ? ну вам может быть и легко все это кажется ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 16:39:01 |
|
||
|
Помогите с запросом пожалуйста
|
|||
|---|---|---|---|
|
#18+
Akina, Спасибо! ну самый крупный банк наверное как-то так можно выбрать SELECT id_bank FROM contract WHERE stat = 0 GROUP BY id_bank ORDER BY COUNT(*) DESC LIMIT 0, 1 и это только если он один будет, а если несколько самых крупных, то я не знаю, тогда этот запрос вообще не подходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 16:50:58 |
|
||
|
Помогите с запросом пожалуйста
|
|||
|---|---|---|---|
|
#18+
Ann_Skyа если несколько самых крупных, то я не знаю, тогда этот запрос вообще не подходитПффф... Да пока Вы вообще не знаете, что с этим делать! а вариантов несколько: 1) взять один, любой; 2) взять один по некоему критерию (например, наименьший идентификатор или там первый по алфавиту); 3) взять все. Если взять все - то возникает второй вопрос, каких клиентов отбирать: 1) у которых нет договоров хотя бы в одном из этих банков; 2) у которых нет договоров ни в одном из этих банков. В общем, прежде, чем что-то делать, поймите до конца, что именно надо. Это, кстати, называется "постановка задачи". А ещё существует принцип "всё, что не указано, как надо, может быть сделано как угодно" - поэтому точная постановка задачи порой важнее собственно решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 17:19:07 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38999163&tid=1832984]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 395ms |

| 0 / 0 |
