Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как оставить только одну копию дубля
|
|||
|---|---|---|---|
|
#18+
Дубли по трем полям, но различающиеся какими-то другими полями, потому простой select distinct не сработает. subj ? Например есть Fam,Im,Ot,Dat_r,Adress,tralala Иванов,Иван,Иваныч,01/01/1960,lalala,tralala... Иванов,Иван,Иваныч,22/01/1960,nanana,tralala... Может отличаться не только по Dat_r, но и почему-то еще, т.е. любые поля кроме Fam,Im,Ot могут совпадать или различаться, но каждая запись уникальна. Мне нужен только один (первый) Иванов Иван Иваныч ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 14:04 |
|
||
|
как оставить только одну копию дубля
|
|||
|---|---|---|---|
|
#18+
SELECT TOP 1 Fam, Im, Ot, Dat_r, Adress, tralala ; FROM TableName ; ORDER BY Fam, Im, Ot ; INTO CURSOR CursorName ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 14:17 |
|
||
|
как оставить только одну копию дубля
|
|||
|---|---|---|---|
|
#18+
отбирается только первая запись и все, а в таблице дофига записей и дофига Петровых и Сидоровых и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 14:33 |
|
||
|
как оставить только одну копию дубля
|
|||
|---|---|---|---|
|
#18+
Не совсем уверен, но попробуй примерно так: SELECT TOP 1 Fam, Im, Ot, Dat_r, Adress, tralala ; FROM TableName ; GROUP BY Fam, Im, Ot ; ORDER BY Fam, Im, Ot ; INTO CURSOR CursorName ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 14:39 |
|
||
|
как оставить только одну копию дубля
|
|||
|---|---|---|---|
|
#18+
А так? SELECT Fam, Im, Ot, Dat_r, Adress, tralala ; FROM TableName ; GROUP BY Fam, Im, Ot ; ORDER BY Fam, Im, Ot ; INTO CURSOR CursorName ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 14:58 |
|
||
|
как оставить только одну копию дубля
|
|||
|---|---|---|---|
|
#18+
SELECT DISTINCT FAM + NAM + OT AS FIO, DT_R ... <И ВСЁ ОСТАЛЬНОЕ> FROM ... WHERE ... INTO ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 15:04 |
|
||
|
как оставить только одну копию дубля
|
|||
|---|---|---|---|
|
#18+
Если тебе абсолютно все-равно какой именно из дублей будет отображен, то построй индекс типа UNIQUE. Он как раз для таких случаев и предназначен. INDEX ON Fam+Im+Ot TAG FIO UNIQUE Индекс типа UNIQUE - не запрещает ввод повторяющихся значений, но вот отображает только уникальные (первые попавшиеся). Соответсвенно, тебе надо будет всего-лишь установить его как главный select MyTab SET ORDER TO FIO Ну или через запрос, который привел tpg . Запросы Александра и Андрея вернут совсем не то, что нужно, поскольку как опция TOP, так и DISTINCT действуют на ВЕСЬ результат выборки, а не в пределах одной группы, что здесь требуется. Если же есть разница, например, ту запись из одинаковых, где значение даты наименьшее, то это делается через вложенные запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 15:15 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=413&tid=1597893]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 325ms |

| 0 / 0 |
