Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Базы данных

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 24.11.2007, 19:15   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 13.10.2007
Адрес: Казахстан
Сообщений: 17
Репутация: 1
Exclamation Выборка записей из таблицы dbf

Привет Всем.
имеется таблица порядка около 120 тысяч записей.
Есть записи уникальные т.е. не повторяющиеся и есть
множество записей имеющих одинаковое значение по определенному полю, но различаются по полю "Дата" т.е. внесены позже.
Задача стоит такая выбрать все уникальные записи , а из дублирующих записей выбрать те в которых поле "Дата" имеет более позднее значение т.е. внесенные позже
Пример
таблица main
Поле GNZ date
Значение 355 01.01.2007
Значение 355 02.05.2007
Значение 789 01.01.2007
Значение 321 02.11.2007
Значение 321 21.11.2007

Нужно вывести только нижеследующие записи

Значение 355 02.05.2007
Значение 789 01.01.2007
Значение 321 21.11.2007
Выборку делаю через Аксес, плз помогите построить правильный SQL запрос.... не силен я в этом....
Заранее спасибо!!!!
Diver_wing вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: пульпиты классификацияВыгодно, удобно, быстро в КНС Нева - видеокарта 1650 4 гб цена - поставка техники в СПБ и города северо-запада России.магазины мебелицентральный московский зоопаркинтернет сервис для озон


Старый 24.11.2007, 20:58   #2
mikle
Постоялец
 
Пол:Мужской
Регистрация: 25.12.2006
Сообщений: 558
Репутация: 184
По умолчанию Ответ: Выборка записей из таблицы dbf

Код:
SELECT
  GNZ, Max(date)
FROM
  main
GROUP BY GNZ
либо в эксесовском построителе запроса отметьте галку Групповые операции и для поля date выберите соответствующую агрегатную фкнкцию (Max())
mikle вне форума
 
Ответить с цитированием Вверх
Старый 24.11.2007, 21:18   #3
Diver_wing
Неактивный пользователь
 
Пол:Мужской
Регистрация: 13.10.2007
Адрес: Казахстан
Сообщений: 17
Репутация: 1
По умолчанию Ответ: Выборка записей из таблицы dbf

Цитата:
Сообщение от mikle Посмотреть сообщение
SELECT GNZ, Max(date) FROM main GROUP BY GNZ

Уточнение.. я так понимаю что по это запросу выйдут только те записи в которых поле GNZ одинаково, но дата позже.
А как с теми записями которые уникальны?

Добавлено через 17 минут
не работает.....
вышеуказанный запрос показывает записи , все одинаковые записи, только сортирует по полю GNZ, я бы хотел получить запрос что бы показывал только тот у которого поля Data был позже

Добавлено через 24 минуты
не работает.....
вышеуказанный запрос показывает записи , все одинаковые записи, только сортирует по полю GNZ, я бы хотел получить запрос что бы показывал только тот у которого поля Data был позже

Последний раз редактировалось Diver_wing; 24.11.2007 в 21:42.. Причина: Добавлено сообщение
Diver_wing вне форума
 
Ответить с цитированием Вверх
Старый 01.12.2007, 19:31   #4
NikIO
Неактивный пользователь
 
Пол:Мужской
Регистрация: 16.06.2007
Сообщений: 19
Репутация: 11
По умолчанию Ответ: Выборка записей из таблицы dbf

В запросе должно присутствовать два поля:
Значение - не указано, как оно называется и GNZ
Тогда запрос на SQL будет выглядеть так:

SELECT main.Значение, Max(main.GNZ) AS [Max-GNZ]
FROM main
GROUP BY main.Значение;

Или в конструкторе выбрать два поля:
Значение и GNZ
и в строке Групповая операция указать
Группировка для поля Значение
Max для поля GNZ
NikIO вне форума
 
Ответить с цитированием Вверх
Старый 04.12.2007, 17:58   #5
Lihonosov
Неактивный пользователь
 
Регистрация: 27.11.2007
Сообщений: 5
Репутация: 1
По умолчанию Ответ: Выборка записей из таблицы dbf

В SQL не знаком, но я бы отталкивался от:

SELECT main.Значение FROM main WHERE main.Значение=Max(date) GROUP BY GNZ
Lihonosov вне форума
 
Ответить с цитированием Вверх
Старый 04.12.2007, 22:48   #6
NikIO
Неактивный пользователь
 
Пол:Мужской
Регистрация: 16.06.2007
Сообщений: 19
Репутация: 11
По умолчанию Ответ: Выборка записей из таблицы dbf

Цитата:
Сообщение от Lihonosov Посмотреть сообщение
SELECT main.Значение FROM main WHERE main.Значение=Max(date) GROUP BY GNZ

Рекомендую проверять свои предположения.
Сообщение Access:
Невозможно использование статистической функции
в предложении WHERE main.Значение=Max(date).
Предложенный мной вариант (см. выше) сгенерирован Access'ом.
NikIO вне форума
 
Ответить с цитированием Вверх
Старый 06.03.2009, 09:01   #7
Haruttm
Неактивный пользователь
 
Пол:Мужской
Регистрация: 22.04.2008
Сообщений: 17
Репутация: 4
По умолчанию Re: Выборка записей из таблицы dbf

select distinct main.значение from table order by date
distinct уникальность
Haruttm вне форума
 
Ответить с цитированием Вверх
Старый 24.07.2012, 12:01   #8
andresg
Новичок
 
Пол:Мужской
Регистрация: 04.04.2012
Сообщений: 16
Репутация: 1
По умолчанию Re: Выборка записей из таблицы dbf

SELECT имяполя, COUNT(*) AS dups ;
FROM имятаблицы ;
GROUP BY имяполя;
HAVING COUNT(*)>1
andresg вне форума
 
Ответить с цитированием Вверх
Старый 04.05.2013, 23:59   #9
andresg
Новичок
 
Пол:Мужской
Регистрация: 04.04.2012
Сообщений: 16
Репутация: 1
По умолчанию Re: Выборка записей из таблицы dbf

Цитата:
Сообщение от Diver_wing Посмотреть сообщение
Привет Всем.
имеется таблица порядка около 120 тысяч записей.
Есть записи уникальные т.е. не повторяющиеся и есть
множество записей имеющих одинаковое значение по определенному полю, но различаются по полю "Дата" т.е. внесены позже.
Задача стоит такая выбрать все уникальные записи , а из дублирующих записей выбрать те в которых поле "Дата" имеет более позднее значение т.е. внесенные позже
Пример
таблица main
Поле GNZ date
Значение 355 01.01.2007
Значение 355 02.05.2007
Значение 789 01.01.2007
Значение 321 02.11.2007
Значение 321 21.11.2007

Нужно вывести только нижеследующие записи

Значение 355 02.05.2007
Значение 789 01.01.2007
Значение 321 21.11.2007
Выборку делаю через Аксес, плз помогите построить правильный SQL запрос.... не силен я в этом....
Заранее спасибо!!!!

в этом Аксес трудно сделать сложные запросы, где надо программировать
andresg вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записей в дочерние таблицы в FoxPro9.0 Lihach Базы данных 7 07.12.2007 23:41
Поиск записей в AD S|lent Microsoft Windows 11 03.11.2006 13:27
Хранение паролей для учётных записей victos Архив 8 10.10.2006 10:02
Автозагрузка-удаление записей Владитмир Microsoft Windows 3 17.01.2006 01:33

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 16:23. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.16361 секунды с 13 запросами