Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Katy_2108 Member Откуда: Сообщений: 24 |
Есть таблица в Access, а в ней столбец с датами, но в формате текст, поэтому встречаются некорректные даты SELECT CDate(Report_table.date_) AS Выражение1, Report_table.date_ FROM Report_table некорректные даты вижу, но мне надо, чтобы запрос выводил только некорректные даты, помогите, пожалуйста |
23 ноя 19, 17:35 [22023627] Ответить | Цитировать Сообщить модератору |
zimkon Member Откуда: guest_rusimport Сообщений: 173 |
Попробуйте так SELECT Report_table.date_ FROM Report_table where IsDate(Report_table.date_)=false |
||||
23 ноя 19, 18:20 [22023643] Ответить | Цитировать Сообщить модератору |
Katy_2108 Member Откуда: Сообщений: 24 |
zimkon, спасибо большое, получилось |
23 ноя 19, 18:28 [22023647] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
Добрый день. Помогите пожалуйста и мне написать запрос) есть таблица:
Запрос должен вернуть строки:
т.е. одбросить дубли по полю P3, оставляя строки с максимальным № |
||||||||||||||||||||||||||||||||||
2 дек 19, 14:51 [22030382] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20871 |
SELECT t1.* FROM [table] AS t1 JOIN (SELECT [P3], MAX([№]) AS [№] FROM [table] GROUP BY [P3]) AS t2 WHERE t1.[P3]= t2.[P3] AND t1.[№]= t2.[№] |
2 дек 19, 15:12 [22030400] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
Пока решаю делать это так, но вдруг есть что-то более простое и надёжное) Данные хранятся в таблице с именем - Лист1 SELECT Лист1.[№], Лист1.Р1, Лист1.Р2, Лист1.Р3 FROM Лист1 WHERE (DMax("[№]","[Лист1]","[Р3]=" & "'" & [Р3] & "'")-[№])=0; Сообщение было отредактировано: 2 дек 19, 15:23 |
2 дек 19, 15:14 [22030405] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20871 |
|
||||
2 дек 19, 15:51 [22030441] Ответить | Цитировать Сообщить модератору |
zimkon Member Откуда: guest_rusimport Сообщений: 173 |
возможна ошибка систаксиса в запросе Access (если это не какой-то другой диалект) SELECT t1.* FROM [table] AS t1 INNER JOIN (SELECT [P3], MAX([№]) AS [№] FROM [table] GROUP BY [P3]) AS t2 ON (t1.[№]= t2.[№]) AND (t1.[P3]= t2.[P3]); |
||||
2 дек 19, 17:31 [22030545] Ответить | Цитировать Сообщить модератору |
sdku Member Откуда: Краснодар Сообщений: 7108 |
|
||||
2 дек 19, 18:50 [22030635] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
Да, первый запрос выдаёт ошибку синтаксиса, а второй ругается на циклическую ссылку (( Access 2010 Пока пользуюсь этим, SELECT table.* FROM [table] WHERE ((((DMax("[№]","[table]","[Р3]=" & "'" & [Р3] & "'")-[№])=0)=0)); но как и говорил Akina это по подзапросу на каждую запись на больших данных долго отрабатывает Сообщение было отредактировано: 3 дек 19, 11:16 |
||||||||
3 дек 19, 11:06 [22031051] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
SELECT table.* FROM [table] WHERE ((DMax("[№]","[table]","[Р3]=" & "'" & [Р3] & "'")-[№]))=0; *Djois, |
3 дек 19, 11:19 [22031061] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
Сразу не сказал, а наверно это важно, поле № ключевое (счётчик) SELECT table.* FROM [table] WHERE DMax("[№]","[table]","[Р3]=" & "'" & [Р3] & "'")-[№]=0; DMax в этом случаи отрабатывает конечно быстрее... или нет? Сообщение было отредактировано: 3 дек 19, 11:42 |
||||||||||||||||||||||||||||||||||||||
3 дек 19, 11:40 [22031083] Ответить | Цитировать Сообщить модератору |
zimkon Member Откуда: guest_rusimport Сообщений: 173 |
А так? SELECT t1.* FROM [table] AS t1 INNER JOIN (SELECT t3.[P3], MAX(t3.[№]) AS N FROM [table] as t3 GROUP BY t3.[P3]) AS t2 ON (t1.[№]= t2.N) AND (t1.[P3]= t2.[P3]); |
||||||||
3 дек 19, 12:01 [22031091] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20871 |
Если делать визардами, то получаются такие тексты (форматирование сохранено): Подзапрос (name=subquery): SELECT Max(table.[№]) AS [Max-№], table.P3 FROM [table] GROUP BY table.P3; Основной запрос (name=mainquery): SELECT table.* FROM [table] INNER JOIN subquery ON (table.P3 = subquery.P3) AND (table.[№] = subquery.[Max-№]); Объединённый запрос (name=solidquery): SELECT table.* FROM [table] INNER JOIN (SELECT Max(table.[№]) AS [Max-№], table.P3 FROM [table] GROUP BY table.P3) AS subquery ON (table.P3 = subquery.P3) AND (table.[№] = subquery.[Max-№]); Все запросы - рабочие (проверено на модельных структуре и данных). |
||||
3 дек 19, 12:05 [22031094] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
не работает, сначала требует ввести значениет параметров: t3.P3 t1.P3 и если что-то в параметры вводить - выдаёт только одну строку, а д.б. их две № Р1 Р2 Р3 12 txt1 txt2 Ф1 |
||||
3 дек 19, 12:06 [22031095] Ответить | Цитировать Сообщить модератору |
zimkon Member Откуда: guest_rusimport Сообщений: 173 |
Djois, возможно в запросе у P3 введена русская буква ЭР (или наоборот - латинская ПЭ) , а у вас в названии поля латинская (или наоборот - русская). Короче, надо чтобы было идентично и в запросе и в таблице |
3 дек 19, 12:20 [22031110] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
Скопировал эти три запроса с указанными именами. Объединённый запрос (name=solidquery) при запуске просит ввести значение параметра table.P3 и в результате выдаёт только одну строку:
а их д.б. две
|
||||||||||||||||||||||||||||||
3 дек 19, 12:25 [22031115] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
ёлы палы точно проверю чуть позже отпишусь))) |
||||
3 дек 19, 12:26 [22031116] Ответить | Цитировать Сообщить модератору |
Панург Member Откуда: настоящему индейцу завсегда везде ништяк Сообщений: 5067 |
Поправлю...
|
||||
3 дек 19, 12:35 [22031125] Ответить | Цитировать Сообщить модератору |
Djois Member Откуда: Минск Сообщений: 25 |
да всё работает, это я тупанул, спасибо!!! |
3 дек 19, 12:59 [22031154] Ответить | Цитировать Сообщить модератору |
zimkon Member Откуда: guest_rusimport Сообщений: 173 |
Ну, да, если поле номер не повторяется, как в приведенном ТС примере, но ведь это может быть и не так ( Но об этом знает только ТС) |
||||||||
3 дек 19, 13:55 [22031204] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft Access | ![]() |