Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Помогите с запросом, пожалуйста! Была таблица с полями: ФИО, группа детсада, ДатаНачала, ДатаОкончания. В таблице было отражено движение детей по группам детсада. Например, с 01.09.2017 по 31.08.2018 - ребенок в ясельной группе, а с 01.09.2018 по 31.08.2019 - в младшей. И так дальше вплоть до подготовительной группы. Замечу, что переход из группы в группу не всегда был с 1 сентября, ребенок может перевестись в любой день в группу постарше или помладше. Необходимо запросом получать данные на конкретную дату о составе групп. Раньше я писала так: SELECT ФИО, группа FROM Таблица WHERE ДатаНачала <= [РасчетнаяДата] AND ДатаНачала >= [РасчетнаяДата]. Подозреваю, что и с BETWEEN работало бы. Но потом я решила, что указывать две даты в таблице - это избыточность. Ведь между датой окончания и следующей за ней датой начала никогда не бывает разрыва - ребенок не может быть вне группы, он обязательно в какой-то группе. Я убрала ДатуОкончания. Таблица стала: ФИО, группа детсада, ДатаНачала. По прежнему необходимо запросом получать данные на конкретную дату о составе групп. Я пыталась вложенным запросом типа: тра-ля-ля WHERE ДатаНачала = (SELECT MAX (ДатаНачала) FROM Таблица WHERE ДатаНачала <= [РасчетнаяДата]). Но выдает не то. Не можете ли подсказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 08:02 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurel,подозреваю, что запрос был Код: sql 1. 2. 3. ? Используй коррелированный подзапрос Код: sql 1. 2. 3. Как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 09:44 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
Панург, да, запрос был WHERE ДатаНачала <= [РасчетнаяДата] AND ДатаОкончания>= [РасчетнаяДата]. Нет, не получается. Выдает всех детей во всех группах, в том исле в тех, из которых они уже перешли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 13:03 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurel, А если так? Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 13:25 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurelНет, не получается. Выдает всех детей во всех группах, в том исле в тех, из которых они уже перешли.Дай-ка пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 13:30 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurel, -для начала прочтите про формирование строки WHERE для дат тынц -навряд ли возможно полноценно ответить на Ваш вопрос не видя схему БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 13:55 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
Вот пример. Michelle, сейчас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 14:07 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurel, Должно быть как-то так Код: sql 1. 2. 3. Дата вводилась видимо пограничная. Ну и неплохо бы вводить дату закрытия - воспитанник уходит из д/с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2019, 17:30 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurel, Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2019, 00:21 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
Спасибо, Панург и Michelle, работает и то и то. Единственное - долговато формирует сводную таблицу по этому запросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 13:48 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurelЕдинственное - долговато формирует сводную таблицу по этому запросу. Вот запрос должен работать быстро: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2019, 19:24 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurel, В целом это нормальная практика хранить даты начала и окончания периода в одной записи, если не хочется вести дату окончания вручную, то можно это поручить триггеру. Имея все данные в одной строке проще индексы настроить, альтернатива падение производительности. Так что плюсов для хранения даты окончания больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 00:15 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
Adilby, действительно быстрее. Спасибо. Swa111, когда я хранила дату окончания, было гораздо удобней. Даже не знаю. Я поняла из учебников по базам данных, что избыточность - это плохо. Но если удобней? Даже не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 15:10 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
OkeTurel ...Я поняла из учебников по базам данных, что избыточность - это плохо. Но если удобней? Даже не знаю. Лично я не вижу в этом нарушения основных правил "базостроения" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 17:16 |
|
||
|
Запрос на актуальную дату
|
|||
|---|---|---|---|
|
#18+
sdku, Все зависит от того, быстро ли и сноровисто ли , ну и естественно - правильно ли ты умеешь готовить запросы и процедуры с запросами.. В особо сложных случаях, когда знаний и опыта не хватает, ну прям специально денормализую. Но это особые случаи, а не когда в 100 таблицах дублируются по десятку полей. Норму тоже нужно знать. По слухам есть 4 и даже 5 нормализации, но это наверное вааще "Зашквар", которого в этой жизни не достичь, разве что только через 5-6 следующих жизней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2019, 23:59 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=24&tid=1610388]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 349ms |

| 0 / 0 |
