powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Господа, помогите решить задачи.
9 сообщений из 9, страница 1 из 1
Господа, помогите решить задачи.
    #39881632
Mazay2142
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даны 3 таблицы: tbl_contract, tbl_premiuim и tbl_client.
Таблица tbl_contract содержит список контрактов.
(* - разделители)

Название поля *** Тип поля *** Описание
cnt_id ***********number **** Автоинкрементный идентификатор
cnt_number ******varchar *****Номер контракта
cnt_date *********date *******Дата заключения контракта
cnt_client******** number*****Идентификатор клиента в таблице tbl_client

Таблица tbl_premium содержит премии и возвраты.
Название поля *** Тип поля *** Описание
prm_id **********number *****Автоинкрементный идентификатор
prm_contract *****number *****Ссылка на таблицу контрактов
prm_type ********varchar *****Тип записи. Если NULL, то текущая запись – премия. Если ‘R’, то текущая запись – возврат уплаченной премии клиенту.
prm_due *********number ****Начисленная премия / возврат
prm_collected***** number ****Оплаченная премия / возврат

Таблица tbl_client содержит данные клиентов.
Название поля *** Тип поля *** Описание
cli_id *********** number **** Автоинкрементный идентификатор
cli_fio ***********varchar *****ФИО клиента


Задания
Примечание по выполнению: Таблицы создавать не нужно, они уже созданы. Задание желательно выполнить
на стандартном SQL, без использования особенностей конкретных диалектов (T-SQL, PL/SQL, etc.)
1. Выдать всех клиентов, у которых есть несколько неоплаченных контрактов (по неоплаченным контрактам
нет оплаченных премий) .
2. Выдать всех клиентов и сумму оплаченных ими премий по всем контрактам каждого клиенты (в формате
ФИО - Сумма оплаченных премий по всем котрактам клиента).
3. Выдать все контракты, заключенные в 2018 году, у которых нет ни одной оплаты (нет связанных записей
оплаченных премий в таблице tbl_premium c заполненным prm_collected).
4. Для контрактов с номерами ‘A’, ‘B’ и ‘C’ удалить последний возврат.

Помогите пожалуйста. Мозги уже чёт поплавились и требуется выходной...

Во вложении есть задание с таблицами. (красивое)
...
Рейтинг: 0 / 0
Господа, помогите решить задачи.
    #39881638
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mazay2142,

Показывайте DDL ваших таблиц и ваши попытки решения.
...
Рейтинг: 0 / 0
Господа, помогите решить задачи.
    #39881651
Mazay2142
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Задание желательно выполнить на стандартном SQL, без использования особенностей конкретных диалектов (T-SQL, PL/SQL, etc.)
Обычно сталкивался только с запросами уровня select что-то from одна таблица)

Попытки были на листе бумаги, который остался в другом месте. Возможности заново сейчас всё с тем же успехом написать - нет. Не то, что проверить, верно или нет.
Скинул другу, который шарит, а он на работе и не может помочь.
Если есть возможность, помогите плиз.
Гарантирую, что это не задача даже контрольной, ни тестовое, просто для себя.
Пытаюсь понять, как правильно на примере данных задач написать запросы.
...
Рейтинг: 0 / 0
Господа, помогите решить задачи.
    #39881658
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mazay2142Гарантирую, что это не задача даже контрольной, ни тестовое, просто для себя.
Mazay2142Мозги уже чёт поплавились и требуется выходной...
Ну так и устройте выходной. Задача же для себя, пару дней подождать никакой проблемы. А там и листик свой найдёте.
...
Рейтинг: 0 / 0
Господа, помогите решить задачи.
    #39881661
Mazay2142
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,

А потом напишу здесь свои, скорее всего, неправильные предположения, и мне станет чертовски неудобно, что я такое вообще написал))))
Ну ладно.
Только не бейте.
...
Рейтинг: 0 / 0
Господа, помогите решить задачи.
    #39936133
alexus0285
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mazay2142,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
SELECT DISTINCT cli.cli_fio AS 'FIO' FROM tbl_premium prm
	LEFT JOIN  tbl_contract cnt
			ON prm.prm_contract = cnt.cnt_id 
	LEFT JOIN tbl_client cli
			ON cnt.cnt_client = cli.cli_id
where prm.prm_type IS NULL 
AND (prm.prm_collected = 0 OR prm.prm_collected IS NULL)

SELECT cli.cli_fio AS 'FIO', SUM(prm.prm_collected) AS 'PayedContractSum' FROM tbl_premium prm
	LEFT JOIN  tbl_contract cnt
			ON prm.prm_contract = cnt.cnt_id 
	LEFT JOIN tbl_client cli
			ON cnt.cnt_client = cli.cli_id
where prm.prm_type IS NULL 
AND prm.prm_collected > 0 
AND prm.prm_collected IS NOT NULL
group by cli.cli_fio

SELECT  DISTINCT cnt.cnt_number from tbl_premium prm 
	LEFT JOIN tbl_contract cnt
		ON prm.prm_contract = cnt.cnt_id
WHERE prm.prm_type IS NULL 
AND (prm.prm_collected = 0 OR prm.prm_collected IS NULL)
AND cnt.cnt_date between '01.01.2018' and '31.12.2018'

BEGIN TRAN
DELETE FROM tbl_premium  WHERE prm_id IN 
(SELECT MAX(prm.prm_id) prm_id from tbl_premium prm 
	INNER JOIN tbl_contract cnt
		ON prm.prm_contract = cnt.cnt_id
	WHERE prm.prm_type = 'R' 
	AND cnt.cnt_number IN ('A','B','C')
GROUP BY prm.prm_contract)
ROLLBACK;
...
Рейтинг: 0 / 0
Господа, помогите решить задачи.
    #39936284
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexus0285,

контрольная уже закончилась давно...
...
Рейтинг: 0 / 0
Господа, помогите решить задачи.
    #39936843
Mazay2142
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexus0285, Спасибо, поздно уже, ибо нашёл другие варианты. Но почитаю. Лишним не будет
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Господа, помогите решить задачи.
    #40058821
luxlite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mazay2142,

Привет, можешь показать другие варианты решения?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Господа, помогите решить задачи.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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