Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с задачей(( / 12 сообщений из 12, страница 1 из 1
10.12.2020, 06:04
    #40026233
Еленo4ka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Есть следующая задача: дано 2 таблицы. В первой имена людей и их родственная связь по отношению ко мне. Во второй имена этих же людей и дата рождения. Найти людей, у которых уникальная родственная связь и они родились не сегодня.
Я решила данную задачу(именно условие на уникальность) с группировкой и подсчетом количества повторов.
Можно ли как-то решить эту задачу альтернативным способом(возможно без группировки) при помощи предиката exists?
...
Рейтинг: 0 / 0
10.12.2020, 07:10
    #40026237
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Любая задача, объясненная на пальцах, может быть решена на пальцах. Но не всегда верно.

Приведите оригинал задачи дословно, лучше шансы правильного ответа.
...
Рейтинг: 0 / 0
10.12.2020, 08:46
    #40026247
Еленo4ka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
НеофитSQL, скриншоты к сожалению не прикладываются из-за размера.
Таблица1(Родств)
Имя(IM)/Связь(SV):
Маша Тетя
Вика Сестра
Андрей Брат
Аня Сестра
Виктор Дедушка

Таблица2(Др):
Имя(IM2)/др (DR)
Маша 28.06.1984
Вика 04.07.1999
Андрей 23.04.2000
Аня 17.02.1998
Виктор 10.12.1960

Вот запрос: SELECT Родств.SV
FROM Родств
WHERE NOT EXISTS(SELECT DR FROM Др WHERE DAY(DATE())=DAY(DR) AND MONTH(DATE())=MONTH(DR) AND Родств.IM=Др.IM2)
GROUP BY Родств.SV
HAVING COUNT(Родств.SV)=1;

То есть в результате должны остаться Андрей и Маша, потому что у дедушки сегодня день рождения, а сестры повторяются.
Вот и надо каким-то альтернативным способом, тоже через exists, возможно с использованием виртуальных таблиц.
...
Рейтинг: 0 / 0
10.12.2020, 11:09
    #40026285
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Код: vbnet
1.
2.
3.
4.
SELECT r1.*
FROM Родств r1
WHERE NOT EXISTS(SELECT DR FROM Др WHERE DAY(DATE())=DAY(DR) AND MONTH(DATE())=MONTH(DR) AND r1.IM=Др.IM2)
and not exists(select 1 from Родств r2 where r1.IM<>r2.IM and r1.SV=r2.SV)
...
Рейтинг: 0 / 0
10.12.2020, 11:59
    #40026304
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Код: sql
1.
2.
3.
4.
5.
6.
SELECT T11.*
FROM (Таблица1 AS t11
LEFT JOIN Таблица1 AS t12 ON ((t11.IM<> t12.IN) AND (t11.SV = t12.SV)))
INNER JOIN Таблица2 AS t2 ON t11.IM = t2.IM2
WHERE (t12.IM IS NULL)
  AND ((DAY(t2.DR) <> DAY(DATE()) OR (MONTH(t2.DR) <> MONTH(DATE()))


PS. Постарался напихать скобочек, как Аксесс любит... правда, не знаю, преуспел ли.
...
Рейтинг: 0 / 0
10.12.2020, 12:18
    #40026315
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Еленo4ka
... у которых уникальная родственная связь и они родились не сегодня....
Хотелось бы пояснений-что такое уникальная (ведь два и более братьев или сестер вполне возможны) родственная связь и как они могут родиться сегодня?
...
Рейтинг: 0 / 0
10.12.2020, 12:55
    #40026330
Еленo4ka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
sdku, день рождения вроде каждый год у людей)))
...
Рейтинг: 0 / 0
10.12.2020, 13:48
    #40026350
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Еленo4ka,

Ваш запрос 4 июля покажет слово "сестра", т.к. Вика в тот день исключится, а Аня останется единственной сестрой.

Если сестер никогда не надо показывать, то

Код: vbnet
1.
2.
3.
4.
5.
6.
SELECT Родств.SV
  FROM Родств
  JOIN Др ON Родств.IM=Др.IM2
 GROUP BY Родств.SV
HAVING COUNT(Родств.SV)=1 AND 
       NOT (DAY(DATE())=DAY(MAX(Др.DR)) AND MONTH(DATE())=MONTH(MAX(Др.DR)));
...
Рейтинг: 0 / 0
10.12.2020, 14:02
    #40026360
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Еленo4ka
sdku, день рождения вроде каждый год у людей)))
день-конкретное число каждого месяца каждого года,а сегодня-конкретный день конкретного месяца и конкретного года.Так как быть если в один день родились 2-3 брата (двойня, тройня)?
...
Рейтинг: 0 / 0
10.12.2020, 14:10
    #40026363
Еленo4ka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
court, спасибо большое, у вас самый идеальный вариант!
...
Рейтинг: 0 / 0
10.12.2020, 14:10
    #40026365
Еленo4ka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Akina, спасибо большое)
...
Рейтинг: 0 / 0
10.12.2020, 16:09
    #40026438
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с задачей((
Как вариант:
1.Почему не такая схема данных
2.Если это просто "напоминалка", то их в сети воз и маленькая тележка
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с задачей(( / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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