powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос unique
12 сообщений из 12, страница 1 из 1
запрос unique
    #33825738
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Здравствуйте!
Подскажите, как можно сделать запрос в таблице выбрав только уникальные записи, аналогично index on name to tag name unique
...
Рейтинг: 0 / 0
запрос unique
    #33825749
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BMJПодскажите, как можно сделать запрос в таблице выбрав только уникальные записи, аналогично index on name to tag name unique
Из Help-а
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] Select_List_Item [, ...]
   FROM [FORCE] Table_List_Item [, ...]
      [[JoinType] JOIN DatabaseName!]Table [[AS] Local_Alias]
      [ON JoinCondition [AND | OR [JoinCondition | FilterCondition] ...] 
   [WITH (BUFFERING = lExpr)]
   [WHERE JoinCondition | FilterCondition [AND | OR JoinCondition | FilterCondition] ...]
   [GROUP BY Column_List_Item [, ...]] [HAVING FilterCondition [AND | OR ...]]
   [UNION [ALL] SELECTCommand]
   [ORDER BY Order_Item [ASC | DESC] [, ...]]
   [INTO StorageDestination | TO DisplayDestination]
   [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT]
Опция DISTINCT - обрати внимание.
Example 3
The following example displays unique data from a query using the DISTINCT option with a join condition in the WHERE clause. The example displays the Company, Order_Date, and Shipped_On fields for only those records with unique data in the Customer and Orders tables. The SELECT statement specifies local aliases for the tables to distinguish the same field name, Cust_ID, in both tables.
Код: plaintext
1.
2.
3.
4.
5.
6.
CLOSE ALL
CLOSE DATABASES
OPEN DATABASE (HOME( 2 ) + 'Data\TestData')
SELECT DISTINCT TAlias1.company, TAlias2.order_date, ;
   TAlias2.shipped_on ;
   FROM customer TAlias1, orders TAlias2 ;
   WHERE TAlias1.cust_id = TAlias2.cust_id
...
Рейтинг: 0 / 0
запрос unique
    #33825769
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Этот DIST работает как мне надо, если в запросе одно поле, если больше он отбирает и по ним и уникальность первого поля теряется.
...
Рейтинг: 0 / 0
запрос unique
    #33825803
StasL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет BMJ!
Приведи пример своей таблицы и результат который ты хочешь получить. Тогда станет понятнее что ты подразумеваешь под
BMJ только уникальные записи
...
Рейтинг: 0 / 0
запрос unique
    #33825894
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старая песня...
...
Рейтинг: 0 / 0
запрос unique
    #33826042
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BMJЭтот DIST работает как мне надо, если в запросе одно поле, если больше он отбирает и по ним и уникальность первого поля теряется.
Почитайте HELP по SELECT DISTINCT !!!
Уникальность обеспечивается в пределах ПЕРЕЧИСЛЕННЫХ в SELECT полях!
С уважением, Алексей.
...
Рейтинг: 0 / 0
запрос unique
    #33826231
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Здравствуйте.
За совет почитать Хэлп спасибо, но то, что DIST работает с перечисленными полями не даёт ответа на нерешённый мной вопрос.
Структура таблица такова-
q-фамилия (много записсей с повторами из справочника)
q1 -документ
q2-дата документа,
q3.... -в запрос не идут
задача -отобрать уникальный список людей проходивших по этому проекту.
...
Рейтинг: 0 / 0
запрос unique
    #33826242
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BMJСтруктура таблица такова-
q-фамилия (много записсей с повторами из справочника)
q1 -документ
q2-дата документа,
q3.... -в запрос не идут
задача -отобрать уникальный список людей проходивших по этому проекту.Под проектом что понимается? Если отобрать уникальный список людей проходивших по этой таблице, то:
Пусть имеется таблица спавочник Spr_Fam (Фамилий Имен Отчеств...)
Код: plaintext
1.
2.
3.
4.
5.
Spr_Fam(
id_fam,; && поле уникальности
First_f,; && фамилия
Second_f,; && Имя
Third_f,;  && Отчество
...)
И ваша таблица:
Код: plaintext
1.
2.
3.
4.
Q_info(
id_inf,; && поле уникальности, если нужно
id_fam,;  && поле связи с таблицей Spr_Fam
data_doc,;  && дата документа
 ....)
Теперь запрос:
Код: plaintext
1.
2.
3.
SELECT DIST F.First_f, F.Second_f, F.Third_f ;
   FROM Spr_Fam F INNER JOIN Q_info Q ;
   ON F.Id_fam = Q.Id_fam ORDER BY  1 , 2 , 3  ;
   INTO CURSOR Q_uniq_fam
Должно получиться.
...
Рейтинг: 0 / 0
запрос unique
    #33826243
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл, наверное дату еще надо включить, то:
Код: plaintext
1.
2.
3.
SELECT DIST Q.data_doc, F.First_f, F.Second_f, F.Third_f ;
   FROM Spr_Fam F INNER JOIN Q_info Q ;
   ON F.Id_fam = Q.Id_fam ORDER BY  1 , 2 , 3 , 4  ;
   INTO CURSOR Q_uniq_fam
Дальше можно самому варьировать, что конкретно требуется. Потому, что фраза:
авторзадача -отобрать уникальный список людей проходивших по этому проектуДля меня так и непонятна.
...
Рейтинг: 0 / 0
запрос unique
    #33826262
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BMJаналогично index on name to tag name unique

BMJЭтот DIST работает как мне надо, если в запросе одно поле, если больше он отбирает и по ним и уникальность первого поля теряется.

А то, что в INDEX...UNIQUE полностью теряется смысл оставшихся полей, тебя не смущает?

BMJ...то, что DIST работает с перечисленными полями не даёт ответа на нерешённый мной вопрос.
"А мы всё ставим каверзный ответ
И не находим нужного вопроса..." (с) В.С.Высоцкий


Тебе без разницы, что Иванов (q) может "проходить" по нескольким документам (q1) с разными датами (q2)?
Если "да", то зачем тебе нужны q1 и q2?
Если "нет", то чем тебе не нравится DISTINCT?
...
Рейтинг: 0 / 0
запрос unique
    #33827592
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi BMJ!

Определись что значит "уникальные записи" и всё станет понятно.
Если тебе нужно отобрать "уникальные по полям f1, f2, f3" - при этом
содержимое остальных полей не интересует, то

SELECT f1, f2, f3 FROM MyTable GROUP BY f1, f2, f3

ну или то что тебе советовали с DISTINCT

Если тебе нужно отобрать ВСЕ поля, но уникальными опять таки должны быть
лишь f1, f2, f3 - то добавь в вышеуказанный запрос в список выбора MAX(f4)
f4, MAX(f5) f5 и т.д. - можно и MIN использовать - ничего более разумного
тут не придумаешь - поскольку нет и не может быть никакого разумного
критерия выбора - какое из значений в данной группе предпочесть.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
запрос unique
    #33828706
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Спасибо за ответы, буду пробовать.
В качестве коментария- проектом я назвал выполняемую в конторе часть работы, а выборка для выявления тех, кто был задействован хоть раз потому и поле дата документа. Более детальный анализ по необходимости.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос unique
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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