|
|
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Добрый день! Помогите мне пожалуйста! Очень надо решить такую задачу. Имеется некий банк с филиалами. Клиент может иметь несколько счетов, при этом они могут быть размещены как в одном , так и в разных филиалах банка находящихся в разных районах.Каждый клиент , в соответствии со своим счетом, может рассчитывать на некотрый кредит банка. При анализе предметной области были выявлены следующие атрибуты: Я создал три таблицы и связал их. Таблицы "Клиент" и "Филиалы" связаны отношением многие ко многим через промежуточную таблицу (с внешними ключами) клиентов. Вот состав полей "Клиент" КодКлиента /PrimaryKey/ ФИО "Филиал" НомерФилиала /PrimaryKey/ "Клиент" НомерСчета /PrimaryKey/ Остаток Кредит КодКлиента /ForeignKey/ связь с таблицей клиентов НомерФлиала / ForeignKey/ связь с таблицей филиалов Вот заковырка. Необходимо используя запросы вывести ФИО клиентов которые имеют счета во всех филиалах. Например Иванов имеет счета в филиале1, филиале2 и филиале3. Петров имеет счета только в первом филиале и втором Запрос должен вернуть только код и ФИО Петрова, т.к. у него счета во всех филиалах. Ребята , помогите. Могу выслать копию базы на мыло, тому кому стало интересно. Спасибо вам заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 11:31 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
>Например Иванов имеет счета в филиале1, филиале2 и филиале3. Петров имеет счета только в первом филиале и втором >Запрос должен вернуть только код и ФИО Петрова, т.к. у него счета во всех >филиалах. Может все-таки запрос должен вернуть ФИО Иванова скинь на registration2005@mail.ru Пороюсь можь чо получиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 11:46 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Ну пусть ФИО Иванова. Посмотри базу и поймешь . Спасибо что откликнулся! Скидываю на указанное мыло базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 11:51 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
если реальные счета банковских карт с их номерами то и мне скинь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:01 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Что-то вроде этого Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:02 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Виктору. Попробовал,спасибо. Ругается на вот это место в запросе => ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:12 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
конкретно для твоей mdb создал еще один запрос SELECT DISTINCT [ФИО] FROM Запрос1 WHERE [ФИО] In (SELECT [ФИО] FROM [Запрос1] As Tmp GROUP BY [ФИО] HAVING Count(*)= (SELECT count(Филиал.НомерФилиала) FROM Филиал) ) ORDER BY [ФИО]; вроде работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:16 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Мда, честно говоря тоже не просек, мож поподробнее, это как понимать: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:17 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
если у тебя не работает могу скинуть саму .mdb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:20 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
=> такого нет можно так >= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:23 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Спасибо заработало. Есть! Hm Ты просто молодец . спасибо , работает. Правда через запрос дополнительный . Но пойдет . Как без запроса "Запрос1" это сделать интересно? Нет слов , спасибо тебе. Виктору Может и твой вариант как то исправить? Вот еще это надо сделать и все. Сделать запросы. 1. Вывести клиентов, которые имеют по одному счету в разных филиалах банка 2. Вывести филиалы ,которые не имеют ни одного клиента 2. Вывести филиалы, которые имеют клиентов с остатком на счету 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:27 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
если хочешь тоже самое в одном запросе, то вот SELECT DISTINCT [ФИО] FROM (SELECT DISTINCTROW Клиент.ФИО, СчетКлиента.НомерФилиала FROM Филиал INNER JOIN (Клиент INNER JOIN СчетКлиента ON Клиент.КодКлиента = СчетКлиента.КодКлиента) ON Филиал.НомерФилиала = СчетКлиента.НомерФилиала) WHERE [ФИО] In (SELECT [ФИО] FROM [Запрос1] As Tmp GROUP BY [ФИО] HAVING Count(*)= (SELECT count(Филиал.НомерФилиала) FROM Филиал) ) ORDER BY [ФИО]; ЗЫ: вот только еще не успел подумать как это хозяйство будет работать, если у одного клиента в одном филиале больше одного счета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:33 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
То что нужно , только все равно запрос "Запрос1 " используется. ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:40 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
=> такого нет можно так >= Ну быфает, ну исфините :) Мда, честно говоря тоже не просек, мож поподробнее, это как понимать: Очень просто: так как группировка по Коду клиента и коду филиала, то Count вернет кол-во записей филиалов в которых есть данный клиент. И сравниваем с кол-вом самих филиалов (Select COUNT(*) FROM Филиал). >= нужно если в 1 филиале несколько счетов одного клиента. Сам запрос не проверял - но вроде логика вроде правильная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 13:05 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Ребята спасибо, через пару часов вернусь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 13:13 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
А просто через Декартово произведение? Код: plaintext 1. 2. 3. 4. 5. 6. 7. и, соответсвенно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. - те, которые имеют во всех. (Вот токо про быстродействие не сабражу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 13:35 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor ваш запрос не прокатит, ИМХО (даже с правкой ситаксиса). Ибо надо СНАЧАЛА сделать группировку и по клиенту и филиалу, ПОТОМ (от него) еще раз сделать группировку только по клиенту и посчитать каунт (разных) филиалов (по клиенту). Иначе либо получите число счетов в данном филиале (группировка по филиалу в конечном запросе), либо число счетов всего (если выкинете группировку по филиалу в конечном) и если допустимо иметь несколько счетов в одном филиале - получите ошибку). по крайней мере в 97 : Count()Хотя аргумент выражение допускает выполнение вычислений над полем, функция Count возвращает просто количество записей, независимо от того, какие данные содержатся в этих записях. Функция Count не подсчитывает записи со значениями Null, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 14:01 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Ты прав :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 14:48 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Цены вам нет господа Монстры. Покатило , через декартово. Спасибо. Работает! Осталось только это. 1. Вывести клиентов, которые имеют по одному счету в разных филиалах банка 2. Вывести филиалы ,которые не имеют ни одного клиента 2. Вывести филиалы, которые имеют клиентов с остатком на счету 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 15:13 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Монстры убежали кушать базы Ребята. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 15:37 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Сделал это: Вывести филиалы, которые имеют клиентов с остатком на счету 0. SELECT DISTINCTROW СчетКлиента.НомерФилиала FROM Филиал INNER JOIN СчетКлиента ON Филиал.НомерФилиала = СчетКлиента.НомерФилиала GROUP BY СчетКлиента.НомерФилиала, СчетКлиента.Остаток HAVING (((СчетКлиента.Остаток)=0)); Осталось как вывести клиентов, которые имеют по одному счету в разных филиалах банка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 15:53 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Наступил последний день... 1. Вывести клиентов, которые имеют по одному счету в разных филиалах банка 2. Вывести филиалы ,которые не имеют ни одного клиента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 08:56 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Если не заботиться об оптимальности, то: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. и Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 11:05 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Спасибо.Со вторым разобрался , а спервым не выходит.Не возвращает записей запрос.Хотя скажем у Иванова один счет в филиале1, один счет в филиале2, вот его фио и код должно вылезти. Осталось только это сделать, все остальное с вашей помощью сделал. Спасибо. Что не так в запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:24 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
автор 1. Вывести клиентов, которые имеют по одному счету в разных филиалах банка имеется в виду что обязятельно в каждом филиале банка должен быть ровно один счет клиента? или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:34 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
2 hm Нет у каждого не должен быть один счет в филиале. Ну вот например Есть три филиала филиал_1 филиал_2 филиал_3 У Иванова пять счетов в первом филиале, два во втором, один в третьем. Иванов не подойдет для запроса. (Т.к у него один счет только в одном филиале, а надо чтобы было по односу счету в несколько) У Петрова 3 счета в первом филиале 3 во втором и два в третьем филиале Он тоже не подойдет Сидоров У него один счет в первом филиале , один во втором филиале и два в третьем филиале. Вот Сидоров подойдет, так у него в разных филиалах по одному счету. Я думаю ясно. Если даже есть четвертый филиал и нет в нем вообще счета , а есть по одному счету в других, то это тоже подойдет.Запрос должен вернуть такого клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:44 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
тьфу, ты. Я так и думал. (есть много вариантов расшивровки "по 1 счету") "1." выводит всех у кого в КАЖДОМ (т.е. во ВСЕХ) филиале есть по 1-му счету. Если есть ф-л 3, Иванов не вылезет. Если нужно всех, кто имеет счета (хотя бы в одном, а не во ВСЕХ), при этом не более 1-го в каждом, отфильтруй "Счета" по количеству т.е. что -то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 1-я часть (INNER JOIN) - дает всех, кто хоть что-то имеет, а NOT EXISTS отсекает по числу счетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:45 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
distinctrow В смысле вставь : SELECT distinctrow К2.КодКлиента, К2.ФИО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:57 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Спасибо большое. Но немного не то. Например у меня у иванова один счет в одном филиале и запрос его выводит. А он не подходит. Как миниму по одному счету должно быть в двух разных филиалах.Вот тогда клиент подойдет. Но если у Иванова было по однгому счету в двух филиалах тогда было бы верно. Дистинкт поставил,осталось немножко подправить этот запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 15:02 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Ну, елы-палы! ты чё, савсем обленился? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. (т.е. замени JOIN, который отбирал существование счетов, запросом, проверяющим существование не менее 2 счетов (при условии что не больше 1-го в каждом филиале это и будет условие "более одного филиала") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 15:12 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Громадное спасибо, жаль нет тебя рядом,поставил бы ящик холодненького пивка!!! Спасибо большое.Все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 15:24 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
может быть малость некрасиво. Так на скору руку накидал. Но кажись работает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 15:24 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Спасибо . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 16:26 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Всем здрасте. Блин,тут немного завалили задачку... Оказывается каждый филиал банка находится в определенном районе. Т.е. таблица Филиал вот так выглядит Филиал НомерФилиала /PrimaryKey/ Район /Текстовый/ В одном районе могут находиться несколько филиалов банка. Надо вывести клиентов , которые имеют счета в разных филиалах банка, расположенных в одном районе. У меня уже голова пухнет, ночью продолбился и результат нулевой Помогите , прошу Вас, вся надежда на Вас господа монстры!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 09:13 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
ну ты, ппплин, в конец обленился. Не говоря о том, что есть с пяток возможных расшифровок "новой задачи". Одну из возможных попробуй так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Или, если данные о районе и кол-ве вхождений в результат не нужны: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ЗЫ. И зря пытаесся народ "монстрами" пообзывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 11:17 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
Большое спасибо. Огромадное!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 12:55 |
|
||
|
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
|
|||
|---|---|---|---|
|
#18+
... а за монстров - ответишь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 23:43 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1675716]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 539ms |

| 0 / 0 |
