powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
13 сообщений из 38, страница 2 из 2
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458697
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 hm

Нет у каждого не должен быть один счет в филиале.
Ну вот например Есть три филиала филиал_1 филиал_2 филиал_3

У Иванова пять счетов в первом филиале, два во втором, один в третьем.
Иванов не подойдет для запроса. (Т.к у него один счет только в одном филиале, а надо чтобы было по односу счету в несколько)
У Петрова 3 счета в первом филиале 3 во втором и два в третьем филиале
Он тоже не подойдет

Сидоров
У него один счет в первом филиале , один во втором филиале и два в третьем филиале.
Вот Сидоров подойдет, так у него в разных филиалах по одному счету.

Я думаю ясно.
Если даже есть четвертый филиал и нет в нем вообще счета , а есть по одному счету в других, то это тоже подойдет.Запрос должен вернуть такого клиента.
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458698
Я знал!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тьфу, ты. Я так и думал. (есть много вариантов расшивровки "по 1 счету")

"1." выводит всех у кого в КАЖДОМ (т.е. во ВСЕХ) филиале есть по 1-му счету. Если есть ф-л 3, Иванов не вылезет.

Если нужно всех, кто имеет счета (хотя бы в одном, а не во ВСЕХ), при этом не более 1-го в каждом, отфильтруй "Счета" по количеству
т.е. что -то типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT К2.КодКлиента, К2.ФИО 
  FROM Клиент AS К2, [СчетКлиента] AS С1
  WHERE
  К2.КодКлиента = С1.КодКлиента 
  AND NOT EXISTS
(
SELECT С0.КодКлиента
   FROM [СчетКлиента] AS С0
   WHERE  С0.КодКлиента =К2.КодКлиента 
   GROUP BY С0.КодКлиента, С0.НомерФлиала
   HAVING (Count(*))> 1 
)
;

1-я часть (INNER JOIN) - дает всех, кто хоть что-то имеет, а NOT EXISTS отсекает по числу счетов
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458720
да, еще
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
distinctrow

В смысле вставь :
SELECT distinctrow К2.КодКлиента, К2.ФИО
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458740
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое. Но немного не то. Например у меня у иванова один счет в одном филиале и запрос его выводит. А он не подходит. Как миниму по одному счету должно быть в двух разных филиалах.Вот тогда клиент подойдет.

Но если у Иванова было по однгому счету в двух филиалах тогда было бы верно.

Дистинкт поставил,осталось немножко подправить этот запрос.
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458761
елы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, елы-палы!
ты чё, савсем обленился?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT К2.КодКлиента, К2.ФИО 
  FROM Клиент AS К2
WHERE EXISTS (SELECT [КодКлиента]
FROM  [СчетКлиента] AS С1
  WHERE
  К2.КодКлиента = С1.КодКлиента 
  GROUP BY С1.КодКлиента
  HAVING (Count(*))> 1 

)
  AND NOT EXISTS
(
SELECT С0.КодКлиента
   FROM [СчетКлиента] AS С0
   WHERE  С0.КодКлиента =К2.КодКлиента 
   GROUP BY С0.КодКлиента, С0.НомерФлиала
   HAVING (Count(*))> 1 
)
;

(т.е. замени JOIN, который отбирал существование счетов, запросом, проверяющим существование не менее 2 счетов (при условии что не больше 1-го в каждом филиале это и будет условие "более одного филиала")
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458783
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Громадное спасибо, жаль нет тебя рядом,поставил бы ящик холодненького пивка!!! Спасибо большое.Все работает.
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458785
hm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может быть малость некрасиво. Так на скору руку накидал. Но кажись работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT [%$##@_Alias].ФИО, Count([%$##@_Alias].НомерФилиала) AS [Count-НомерФилиала1]
FROM [SELECT Запрос1.ФИО, Count(Запрос1.НомерФилиала) AS [Count-НомерФилиала], Запрос1.НомерФилиала
FROM Запрос1
GROUP BY Запрос1.ФИО, Запрос1.НомерФилиала
HAVING (((Count(Запрос1.НомерФилиала))= 1 ))
]. AS [%$##@_Alias]
GROUP BY [%$##@_Alias].ФИО
HAVING (((Count([%$##@_Alias].НомерФилиала))> 1 ));
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32458929
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо .
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32460070
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здрасте.

Блин,тут немного завалили задачку...

Оказывается каждый филиал банка находится в определенном районе.

Т.е. таблица Филиал вот так выглядит

Филиал

НомерФилиала /PrimaryKey/
Район /Текстовый/

В одном районе могут находиться несколько филиалов банка.

Надо вывести клиентов , которые имеют счета в разных филиалах банка, расположенных в одном районе.

У меня уже голова пухнет, ночью продолбился и результат нулевой

Помогите , прошу Вас, вся надежда на Вас господа монстры!!!
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32460311
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну ты, ппплин, в конец обленился. Не говоря о том, что есть с пяток возможных расшифровок "новой задачи". Одну из возможных попробуй так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT DISTINCT К.КодКлиента, К.ФИО, Ф0.Район,
 (SELECT Count(Ф.НомерФилиала) AS Count_НомерФилиала
   FROM Филиал AS Ф INNER JOIN [СчетКлиента] AS С
   ON Ф.НомерФилиала = С.НомерФлиала
   WHERE Ф0.Район = Ф.Район
   AND  С0.КодКлиента=С.КодКлиента 
   GROUP BY Ф.Район) AS CountRegion
FROM Филиал AS Ф0 INNER JOIN 
  (Клиент AS К INNER JOIN [СчетКлиента] AS С0 
     ON К.КодКлиента = С0.КодКлиента)
  ON Ф0.НомерФилиала = С0.НомерФлиала
  WHERE Exists 
    (SELECT Count(Ф.НомерФилиала) AS Count_НомерФилиала
      FROM Филиал AS Ф INNER JOIN [СчетКлиента] AS С
      ON Ф.НомерФилиала = С.НомерФлиала
      WHERE Ф0.Район = Ф.Район 
      AND  С0.КодКлиента=С.КодКлиента 
      GROUP BY Ф.Район
      HAVING Count(*) > 1 );


Или, если данные о районе и кол-ве вхождений в результат не нужны:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT DISTINCTROW  К.КодКлиента, К.ФИО
 FROM Филиал AS Ф0 INNER JOIN 
  (Клиент AS К INNER JOIN [СчетКлиента] AS С0 
     ON К.КодКлиента = С0.КодКлиента)
  ON Ф0.НомерФилиала = С0.НомерФлиала
  WHERE Exists 
    (SELECT Count(Ф.НомерФилиала) AS Count_НомерФилиала
    FROM Филиал AS Ф INNER JOIN [СчетКлиента] AS С
    ON Ф.НомерФилиала = С.НомерФлиала
    WHERE Ф0.Район = Ф.Район 
    AND  С0.КодКлиента=С.КодКлиента 
GROUP BY Ф.Район
HAVING Count(*) > 1 );


ЗЫ. И зря пытаесся народ "монстрами" пообзывать.
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32460499
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо.
Огромадное!!!
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32461545
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... а за монстров - ответишь!
...
Рейтинг: 0 / 0
Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
    #32461660
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любое время!
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ребята! Монстры аксеса помогите!!! Надо запрос сделать очень мудреный! Я незнаю как...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]