powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQL [закрыт для гостей] / Спаситеее
25 сообщений из 51, страница 2 из 3
Спаситеее
    #1665496
Фотография Green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из входных данных надо убрать id=1, а потом из полученной таблицы найти минимум.
Может вложенным сделать, первым запросом убрать id=1, а вторым запросом найти минимум даты.
...
Изменено: 16.02.2026, 09:19:34 - Green
Рейтинг: 0 / 0
Спаситеее
    #1665563
Людмила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И снова здравствуйте!
Разобрала совет от Горыныча (показался самым элегантным!). Подшаманила под FoxPro, получилось:

select Top 1 id, dat from t where dat > (select MAX(dat) from t where id = 1) order by dat

Всё получилось как хотели !!!
Ребят, Большое спасибо!
...
Рейтинг: 0 / 0
Спаситеее
    #1665568
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 10:19:27
[игнорируется]
И снова здравствуйте!
Разобрала совет от Горыныча (показался самым элегантным!). Подшаманила под FoxPro, получилось:

select Top 1 id, dat from t where dat > (select MAX(dat) from t where id = 1) order by dat

Всё получилось как хотели !!!
Ребят, Большое спасибо!
Гарыныч - голова! Не то что некоторые. :)))
...
Рейтинг: 0 / 0
Спаситеее
    #1665570
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green  16.02.2026, 09:19:20
[игнорируется]
Из входных данных надо убрать id=1, а потом из полученной таблицы найти минимум.
Может вложенным сделать, первым запросом убрать id=1, а вторым запросом найти минимум даты.
Прежде всего надо обратить саентолога в лютеранство. Первым же запросом !
Потом всё остальное.
...
Рейтинг: 1 / 0
Нравится: Гарын
Спаситеее
    #1665831
Гарын
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3-й статус
Кусь  16.02.2026, 10:24:31
[игнорируется]
Green  16.02.2026, 09:19:20
[игнорируется]
Из входных данных надо убрать id=1, а потом из полученной таблицы найти минимум.
Может вложенным сделать, первым запросом убрать id=1, а вторым запросом найти минимум даты.
Прежде всего надо обратить саентолога в лютеранство. Первым же запросом !
Потом всё остальное.
:)))
...
и твари бобро
Рейтинг: 0 / 0
Спаситеее
    #1665867
defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 10:19:27
[игнорируется]
И снова здравствуйте!
Разобрала совет от Горыныча (показался самым элегантным!). Подшаманила под FoxPro, получилось:

select Top 1 id, dat from t where dat > (select MAX(dat) from t where id = 1) order by dat

Всё получилось как хотели !!!
Ребят, Большое спасибо!
это просто подгон под условие "хочу вытащить конкретную дату", а не решение

В задаче чётко написано:
Цитата 
[игнорируется]
получить ближайшую MIN(дату) из имеющихся, где нет Id = 1
при этом указано, какую дату получить
Цитата 
[игнорируется]
т.е. 01.15.26
И нахуя тогда все эти сложности, если можно было просто написать
Код: SQL
1.
SELECT * where data = {^01.15.26}
А вот если соблюдать конкретное условие:
Цитата 
[игнорируется]
получить ближайшую MIN(дату) из имеющихся, где нет Id = 1
то ближайшая MIN(дата), где нет id = 1, будет как раз "01.14.26", а вовсе не 01.15.26

Так что задача или поставлена изначально некорректно, или ТС додумала сама, что минимальная дата 01.15.26, а не 01.14.26
Спойлер
Людмила  15.02.2026, 15:15:55
[игнорируется]
Есть таблица.dbf

id | data
------------------
1 | 01.12.26
1 | 01.14.26
7 | 01.14.26
2 | 01.18.26
7 | 01.15.26

нужно запросом SELECT ....... where Id <> 1 and data > {^2026.01.12} получить ближайшую MIN(дату) из имеющихся, где нет Id = 1, т.е. 01.15.26
...
Изменено: 16.02.2026, 13:48:24 - defecator
Рейтинг: 0 / 0
Спаситеее
    #1665909
Людмила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но, пришел програмист, обзывая меня объяснил,.что для id = 1 and datr = {^2026.01.12} (первая строчка),
запрос должен выдать следующую дату из таблицы, где на эту дату нет id=1 where id <> 1 and datr > {^2026.01.12},
в данном случае - 01.16.26 (четвертая строчка)

id | datr
------------------
1 | 01.12.26
7 | 01.14.26
1 | 01.14.26
2 | 01.16.26
7 | 01.17.26

наши Selectы выдают вторую строчку, хоть тресни!
...
Рейтинг: 0 / 0
Спаситеее
    #1665927
defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 14:31:11
[игнорируется]
но, пришел програмист, обзывая меня объяснил,.что для id = 1 and datr = {^2026.01.12} (первая строчка),
запрос должен выдать следующую дату из таблицы, где на эту дату нет id=1 where id <> 1 and datr > {^2026.01.12},
в данном случае - 01.16.26 (четвертая строчка)

id | datr
------------------
1 | 01.12.26
7 | 01.14.26
1 | 01.14.26
2 | 01.16.26
7 | 01.17.26

наши Selectы выдают вторую строчку, хоть тресни!
и правильно выдают !
Потому что там в SELECT используется MIN - выборка минимальной даты из таблицы

А минимальная дата в этой таблице - 01.14.26 (вторая строка)
...
Рейтинг: 0 / 0
Спаситеее
    #1665943
defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, или ТС тупая, или условие - говно
Screenshot_912.png
...
Рейтинг: 0 / 0
Спаситеее
    #1665952
Людмила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator [игнорируется] 

Ну вот, а нужно на 16.01.26 выйти, потому как на дату 14.01.26 имеется Id = 1
...
Рейтинг: 0 / 0
Спаситеее
    #1665960
defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 14:56:26
[игнорируется]
defecator [игнорируется] 

Ну вот, а нужно на 16.01.26 выйти, потому как на дату 14.01.26 имеется Id = 1
там одна и та же дата два раза, с разными ID

Если мы уберём ID = 1, то всё равно останется дата с ID = 7
Screenshot_913.png
Тогда надо убирать ещё и ID = 7, тогда условие выполнится
Screenshot_914.png
...
Рейтинг: 0 / 0
Спаситеее
    #1665978
Людмила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator [игнорируется] 

Datr - даты приема врача
Id - группа пациентов

Допустим сегодня 12.01, врач должен записать эту группу на следующую ближайшую дату приема из таблицы, где эта группа на записана. т.е 16.01 (из примера)
...
Рейтинг: 0 / 0
Спаситеее
    #1665986
defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 15:18:13
[игнорируется]
defecator [игнорируется] 

Datr - даты приема врача
Id - группа пациентов

Допустим сегодня 12.01, врач должен записать эту группу на следующую ближайшую дату приема из таблицы, где эта группа на записана. т.е 16.01 (из примера)
это так не работает, как ты хочешь.
У тебя в таблице, после того, как сработает условие ID <> 1, всё равно остаётся минимальная дата - 14.01.26

Вот смотри, что останется, если убрать ID <> 1
Screenshot_915.png
Из этого набора у тебя останется три даты, минимальная из которых - всё равно 14.01.26
агрегат MIN вытащит именно эту дату

Возможно, что тебе не хватает каких-то дополнительных условий,
например, нужно в условии использовать ещё и ID (группа пациентов)


В противном случае, без доп.условий, задача вытащить минимальную дату 16.01.2026 вместо 14.01.2026 - не решается от слова совсем
...
Изменено: 16.02.2026, 15:27:57 - defecator
Рейтинг: 0 / 0
Спаситеее
    #1666044
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо поработать над условием задачу. Можно спросить вашего старшего программиста, может он поможет описать, что там всё-таки надо.
...
Рейтинг: 1 / 0
Нравится: Гарын
Спаситеее
    #1666085
Людмила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Семён Семёныч !

id | datr
------------------
1 | 01.12.26
7 | 01.14.26
1 | 01.14.26
2 | 01.16.26
7 | 01.17.26

SELECT MIN(Datr) FROM tt WHERE datr>{^2026.01.12} AND Datr NOT in (SELECT Datr FROM tt WHERE Id=1 AND datr>{^2026.01.12})

Выбирает - 16.01 - четвертую строку.

Всем, Всем, Всем, большое Спасибочки.
[:smile] если что, обращайтесь, буду рада помочь.
...
Рейтинг: 0 / 0
Спаситеее
    #1666090
Гарын
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3-й статус
Людмила  16.02.2026, 17:13:33
[игнорируется]
Семён Семёныч !

id | datr
------------------
1 | 01.12.26
7 | 01.14.26
1 | 01.14.26
2 | 01.16.26
7 | 01.17.26

SELECT MIN(Datr) FROM tt WHERE datr>{^2026.01.12} AND Datr NOT in (SELECT Datr FROM tt WHERE Id=1 AND datr>{^2026.01.12})

Выбирает - 16.01 - четвертую строку.

Всем, Всем, Всем, большое Спасибочки.
[:smile] если что, обращайтесь, буду рада помочь.
ну наконец то :))), рад за вас!

зы: тут как обычно, обращаются к даме с просьбой : фотку на фоне 8 пальцев :)
...
и твари бобро
Изменено: 16.02.2026, 17:19:25 - Гарын
Рейтинг: 0 / 0
Спаситеее
    #1666092
defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 17:13:33
[игнорируется]
Семён Семёныч !

id | datr
------------------
1 | 01.12.26
7 | 01.14.26
1 | 01.14.26
2 | 01.16.26
7 | 01.17.26

SELECT MIN(Datr) FROM tt WHERE datr>{^2026.01.12} AND Datr NOT in (SELECT Datr FROM tt WHERE Id=1 AND datr>{^2026.01.12})

Выбирает - 16.01 - четвертую строку.

Всем, Всем, Всем, большое Спасибочки.
[:smile] если что, обращайтесь, буду рада помочь.
это просто подгонка решения под желаемый ответ, это не решение
...
Рейтинг: 0 / 0
Спаситеее
    #1666107
Фотография Green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 15:18:13
[игнорируется]
defecator [игнорируется] 

Datr - даты приема врача
Id - группа пациентов

Допустим сегодня 12.01, врач должен записать эту группу на следующую ближайшую дату приема из таблицы, где эта группа на записана. т.е 16.01 (из примера)
А как так получается, что в таблице даты приема совпадают для разных групп пациентов, надо тогда очистить совпадающие даты.
...
Рейтинг: 0 / 0
Спаситеее
    #1666115
Фотография Green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 17:13:33
[игнорируется]
Семён Семёныч !

id | datr
------------------
1 | 01.12.26
7 | 01.14.26
1 | 01.14.26
2 | 01.16.26
7 | 01.17.26

SELECT MIN(Datr) FROM tt WHERE datr>{^2026.01.12} AND Datr NOT in (SELECT Datr FROM tt WHERE Id=1 AND datr>{^2026.01.12})

Выбирает - 16.01 - четвертую строку.

Всем, Всем, Всем, большое Спасибочки.
[:smile] если что, обращайтесь, буду рада помочь.
Вот тут Людмила вложенным запросом очистила входные данные от совпадающих дат и получила решение.

Можно то же самое сделать через left jotn и выбрать только те записи, где правая сторона Null.
...
Рейтинг: 0 / 0
Спаситеее
    #1666140
Людмила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator [игнорируется]  : "это просто подгонка решения под желаемый ответ, это не решение" ?!?

протестила на таблице в более 1000 строк.

Всё ОК!
...
Рейтинг: 1 / 0
Нравится: Гарын
Спаситеее
    #1666188
Гарын
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3-й статус
Green  16.02.2026, 17:33:57
[игнорируется]
Людмила  16.02.2026, 15:18:13
[игнорируется]
defecator [игнорируется] 

Datr - даты приема врача
Id - группа пациентов

Допустим сегодня 12.01, врач должен записать эту группу на следующую ближайшую дату приема из таблицы, где эта группа на записана. т.е 16.01 (из примера)
А как так получается, что в таблице даты приема совпадают для разных групп пациентов, надо тогда очистить совпадающие даты.
группы пациентов могут быть разные, мана
например : группа ид=1 - это льготники/пенсионеры ( например )
остальные группы - это другие
( имхо)

ну и : на фокспро я прогал крайний раз лет 30 назад :)
...
и твари бобро
Изменено: 16.02.2026, 18:13:15 - Гарын
Рейтинг: 0 / 0
Спаситеее
    #1666328
Людмила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гарын [игнорируется] 

Описание и всё остальное всего лишь малая часть реальной задачи, у групп имеются подгруппы, коды врачей ..., их даты приема.
Запрос естественно разросся вдвое.

А от FoxPro тут только table.DBF, запрос простенький на SQL,
а прога сама крутится на Golang. Вот такой винегрет.
...
Рейтинг: 1 / 0
Нравится: Гарын
Спаситеее
    #1666345
Гарын
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3-й статус
Людмила  16.02.2026, 21:32:04
[игнорируется]
Гарын [игнорируется] 

Описание и всё остальное всего лишь малая часть реальной задачи, у групп имеются подгруппы, коды врачей ..., их даты приема.
Запрос естественно разросся вдвое.

А от FoxPro тут только table.DBF, запрос простенький на SQL,
а прога сама крутится на Golang. Вот такой винегрет.
понял
...
и твари бобро
Рейтинг: 0 / 0
Спаситеее
    #1666365
Фотография Green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмила  16.02.2026, 21:32:04
[игнорируется]
Гарын [игнорируется] 

Описание и всё остальное всего лишь малая часть реальной задачи, у групп имеются подгруппы, коды врачей ..., их даты приема.
Запрос естественно разросся вдвое.

А от FoxPro тут только table.DBF, запрос простенький на SQL,
а прога сама крутится на Golang. Вот такой винегрет.
По современной моде такие базы делают на sqlite
...
Рейтинг: 0 / 0
Спаситеее
    #1666367
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green  16.02.2026, 22:47:56
[игнорируется]
Людмила  16.02.2026, 21:32:04
[игнорируется]
Гарын [игнорируется] 

Описание и всё остальное всего лишь малая часть реальной задачи, у групп имеются подгруппы, коды врачей ..., их даты приема.
Запрос естественно разросся вдвое.

А от FoxPro тут только table.DBF, запрос простенький на SQL,
а прога сама крутится на Golang. Вот такой винегрет.
По современной моде такие базы делают на sqlite
И устанавливают всё это на Raspberry Pi. По заветам одного саентолога. [:zsmoke]
...
Рейтинг: 1 / 0
Нравится: Гарын
25 сообщений из 51, страница 2 из 3
Форумы / SQL [закрыт для гостей] / Спаситеее
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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