|
|
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
Из входных данных надо убрать id=1, а потом из полученной таблицы найти минимум. Может вложенным сделать, первым запросом убрать id=1, а вторым запросом найти минимум даты. ... |
|||
|
:
Изменено: 16.02.2026, 09:19:34 - Green
Нравится:
Не нравится:
|
|||
| 16.02.2026, 09:19:20 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
И снова здравствуйте! Разобрала совет от Горыныча (показался самым элегантным!). Подшаманила под FoxPro, получилось: select Top 1 id, dat from t where dat > (select MAX(dat) from t where id = 1) order by dat Всё получилось как хотели !!! Ребят, Большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 10:19:27 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
И снова здравствуйте! Разобрала совет от Горыныча (показался самым элегантным!). Подшаманила под FoxPro, получилось: select Top 1 id, dat from t where dat > (select MAX(dat) from t where id = 1) order by dat Всё получилось как хотели !!! Ребят, Большое спасибо! ![]() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 10:23:18 |
|
||
|
Спаситеее
|
|
|---|---|
|
#18+
Из входных данных надо убрать id=1, а потом из полученной таблицы найти минимум. Может вложенным сделать, первым запросом убрать id=1, а вторым запросом найти минимум даты. Потом всё остальное. ... |
|
|
:
|
|
| 16.02.2026, 10:24:31 |
|
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
Из входных данных надо убрать id=1, а потом из полученной таблицы найти минимум. Может вложенным сделать, первым запросом убрать id=1, а вторым запросом найти минимум даты. Потом всё остальное. ![]() ... |
|||
|
и твари бобро
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 13:12:03 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
И снова здравствуйте! Разобрала совет от Горыныча (показался самым элегантным!). Подшаманила под 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. Цитата [игнорируется] получить ближайшую MIN(дату) из имеющихся, где нет Id = 1 Так что задача или поставлена изначально некорректно, или ТС додумала сама, что минимальная дата 01.15.26, а не 01.14.26 Спойлер Есть таблица.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
Нравится:
Не нравится:
|
|||
| 16.02.2026, 13:46:38 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
но, пришел програмист, обзывая меня объяснил,.что для 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ы выдают вторую строчку, хоть тресни! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 14:31:11 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
но, пришел програмист, обзывая меня объяснил,.что для 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 (вторая строка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 14:39:14 |
|
||
|
Спаситеее
#1665943
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
#18+
... |
||||||||||||||||
|
:
Нравится:
Не нравится:
|
||||||||||||||||
| 16.02.2026, 14:48:32 |
|
|||||||||||||||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
defecator [игнорируется] Ну вот, а нужно на 16.01.26 выйти, потому как на дату 14.01.26 имеется Id = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 14:56:26 |
|
||
|
Спаситеее
#1665960
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
Ссылка на вложение 2:
|
|||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
#18+
там одна и та же дата два раза, с разными ID Если мы уберём ID = 1, то всё равно останется дата с ID = 7Тогда надо убирать ещё и ID = 7, тогда условие выполнится ... |
|||||||||||||||||||
|
:
Нравится:
Не нравится:
|
|||||||||||||||||||
| 16.02.2026, 15:02:31 |
|
||||||||||||||||||
|
Спаситеее
#1665986
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
#18+
это так не работает, как ты хочешь. У тебя в таблице, после того, как сработает условие ID <> 1, всё равно остаётся минимальная дата - 14.01.26 Вот смотри, что останется, если убрать ID <> 1Из этого набора у тебя останется три даты, минимальная из которых - всё равно 14.01.26 агрегат MIN вытащит именно эту дату Возможно, что тебе не хватает каких-то дополнительных условий, например, нужно в условии использовать ещё и ID (группа пациентов) В противном случае, без доп.условий, задача вытащить минимальную дату 16.01.2026 вместо 14.01.2026 - не решается от слова совсем ... |
||||||||||||||||
|
:
Изменено: 16.02.2026, 15:27:57 - defecator
Нравится:
Не нравится:
|
||||||||||||||||
| 16.02.2026, 15:26:13 |
|
|||||||||||||||
|
Спаситеее
|
|
|---|---|
|
#18+
Надо поработать над условием задачу. Можно спросить вашего старшего программиста, может он поможет описать, что там всё-таки надо. ... |
|
|
:
|
|
| 16.02.2026, 16:35:00 |
|
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
Семён Семёныч ! 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 - четвертую строку. Всем, Всем, Всем, большое Спасибочки. если что, обращайтесь, буду рада помочь.... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 17:13:33 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
Семён Семёныч ! 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 - четвертую строку. Всем, Всем, Всем, большое Спасибочки. если что, обращайтесь, буду рада помочь. , рад за вас!зы: тут как обычно, обращаются к даме с просьбой : фотку на фоне 8 пальцев :) ... |
|||
|
и твари бобро
:
Изменено: 16.02.2026, 17:19:25 - Гарын
Нравится:
Не нравится:
|
|||
| 16.02.2026, 17:17:11 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
Семён Семёныч ! 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 - четвертую строку. Всем, Всем, Всем, большое Спасибочки. если что, обращайтесь, буду рада помочь.... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 17:19:11 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
А как так получается, что в таблице даты приема совпадают для разных групп пациентов, надо тогда очистить совпадающие даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 17:33:57 |
|
||
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
Семён Семёныч ! 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 - четвертую строку. Всем, Всем, Всем, большое Спасибочки. если что, обращайтесь, буду рада помочь.Можно то же самое сделать через left jotn и выбрать только те записи, где правая сторона Null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 17:36:09 |
|
||
|
Спаситеее
|
|
|---|---|
|
#18+
defecator [игнорируется] : "это просто подгонка решения под желаемый ответ, это не решение" ?!? протестила на таблице в более 1000 строк. Всё ОК! ... |
|
|
:
|
|
| 16.02.2026, 17:45:52 |
|
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
А как так получается, что в таблице даты приема совпадают для разных групп пациентов, надо тогда очистить совпадающие даты. например : группа ид=1 - это льготники/пенсионеры ( например ) остальные группы - это другие ( имхо) ну и : на фокспро я прогал крайний раз лет 30 назад :) ... |
|||
|
и твари бобро
:
Изменено: 16.02.2026, 18:13:15 - Гарын
Нравится:
Не нравится:
|
|||
| 16.02.2026, 18:12:08 |
|
||
|
Спаситеее
|
|
|---|---|
|
#18+
Гарын [игнорируется] Описание и всё остальное всего лишь малая часть реальной задачи, у групп имеются подгруппы, коды врачей ..., их даты приема. Запрос естественно разросся вдвое. А от FoxPro тут только table.DBF, запрос простенький на SQL, а прога сама крутится на Golang. Вот такой винегрет. ... |
|
|
:
|
|
| 16.02.2026, 21:32:04 |
|
|
Спаситеее
|
|||
|---|---|---|---|
|
#18+
По современной моде такие базы делают на sqlite ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2026, 22:47:56 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=1666115&tid=37839]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
113ms |
get tp. blocked users: |
2ms |
| others: | 48ms |
| total: | 232ms |

| 0 / 0 |
