1

Тема: Не зрузуміле завдання access

Добрий день, я не як не можу зрозуміти наступне завдання:
На основі таблиць Відділення банку та Вклади створити запит на вибірку із груповою операцією. У запит включити поля Відділення та Код платника. Визначити фактичну кількість вкладників у відділенні банку. Підпис поля Код платника змінити на Фактична кількість вкладників.
______________________________________
Це моя бд:
http://s3.hostingkartinok.com/uploads/thumbs/2013/12/c375ffcd8681cc4463fc6691e2abd219.png

Розберемо по пунктам:
1. На основі таблиць Відділення банку та Вклади створити запит на вибірку із груповою операцією
http://s5.hostingkartinok.com/uploads/thumbs/2013/12/43865cbb197e3bde916736a767994c17.png
Це ми зробили.

2. У запит включити поля Відділення та Код платника:
поле "Код платника" відсутній в таблиці  Відділення банку та Вклади, це поле є в таблиці "Данні про вкладників"
http://s6.hostingkartinok.com/uploads/thumbs/2013/12/dd1415807ed4cd53d7084fa8361c18ea.png
Можливо кто робив завдання помилився, обо я щось не так зрозумів.

3. Визначити фактичну кількість вкладників у відділенні банку:
Як його визначити? Фактична кількість вкладників - це кількість вкладників у банку, як їх порахувати?

2

Re: Не зрузуміле завдання access

Перша заповідь вивчення БД: забудьте про конструктор. Є режим "SQL Mode" (правою кнопкою на вікні запиту конструктора).
Друга заповідь вивчення БД: Кириличні назви таблиць - зло. З пробілами - подвійне зло.

А тепер по темі питання:

1. Для запиту потрібні таблиці Clients (Дані про вкладників), Departments (відділення банку) та Deposits (вклади), яка об'єднає дві попередні.
2. Дві конструкції JOIN, одна GROUP BY - і маєте готовий запит.
3. Пробуйте і відпишіться про результати/проблеми.

I belong to the Dead Generation.
Подякували: timedoru1

3

Re: Не зрузуміле завдання access

Bartash написав:

Пробуйте і відпишіться про результати/проблеми.

В мене не виходить запит, пише

"Ошибка синтаксиса в операции Join"

SELECT [Вiддiлення банку].[Код вiддiлення], COUNT(*) AS [Количество вкладчиков]
FROM [Вiддiлення банку] INNER JOIN (SELECT DISTINCT [Вiддiлення банку], Вкладник FROM Вклади) AS q
ON [Вiддiлення банку].[Код вiддiлення]=Вклади.[Вiддiлення банку]
GROUP BY [Вiддiлення банку].[Код вiддiлення]

4

Re: Не зрузуміле завдання access

У цьому варіанті лається на альяс для підзапиту у JOIN'і, бо ви далі описуєте в ON, що зв'язуєте без нього. Але не треба це зараз виправляти.

Загалом ви вірно зрозуміли ідею. Однак запити не варто будувати на внутрішніх підзапитах - важкі виходять (особливо з DISTINCT).

Спробуйте отак:

SELECT dep.[Код вiддiлення],
           COUNT(q.*) AS [Кількість вкладників]
FROM [Вклади] q

JOIN [Вiддiлення банку] dep   ON dep.[Код вiддiлення]=q.[Вiддiлення банку]
JOIN [Дані про вкладників] c  ON c.[Код платника] = q.[Вкладник]

GROUP BY dep.[Код вiддiлення]
ORDER BY dep.[Код вiддiлення]

З.І: чому "код платника", якщо вклад - це не платіж?:)

I belong to the Dead Generation.
Подякували: timedoru1