Вопрос по FoxPro
|
|
Грустный работник | Дата: Среда, 30.04.2014, 16:33 | Сообщение # 1 |
Группа: Гости
Статус:
| Ребят помогите. Может кто знает ( необходимо - слить 2 базы данных. Отсортировать записи и удалить дубли записей.
К примеру есть 2 базы (A.dbf, B.dbf) Файл на выходе будет C.dbf
Слепить базы я и сам могу, а вот отсортировать и удалить дубли записей загвоздка :( Есть ли в FoxPro функция удаления дублей?
В файлах по 3 поля "Kod, Vitt, Pr_Gh": - Отсортировать по полю Kod (от наименьшего к наибольшему) - Удалить дубли (При удалении дублей учитывать нужно все 3 поля).
Очень надо!
|
|
| |
Admin | Дата: Среда, 30.04.2014, 16:55 | Сообщение # 2 |
 Самый главный )
Группа: Администраторы
Сообщений: 352
Награды: 11
Репутация: 1808
Статус: Offline
| Грустный работник,
Вот уточнил пробуй
select * from c order by kod into dbf resultat uniq
Самомнение — враг совершенствования.
|
|
| |
Грустный работник | Дата: Среда, 30.04.2014, 19:45 | Сообщение # 3 |
Группа: Гости
Статус:
| Админ, спасибо большое за то, что ответили! Только у меня еще одна проблемка (подождет конечно на после праздников, но был бы очень признателен) На самом деле я думаю проблемма то пустековая, но я в этом деле полный нуб ( Цель: В одном файле к примеру A.dbf есть поле №1 мне нужно из этого поля скопировать данные в поле № 2
|
|
| |
Гость | Дата: Четверг, 01.05.2014, 14:16 | Сообщение # 4 |
Группа: Гости
Статус:
| если поле №1 называется pole1 а поле №2 - pole2
replace pole2 with pole1 all
если задача сложнее уточните -помогу
|
|
| |
Грустный работник | Дата: Понедельник, 05.05.2014, 09:54 | Сообщение # 5 |
Группа: Гости
Статус:
| Гость, огромное спасибо. Эту строчку "replace" я должен ввести в фокспро ? Правильно ли я понял?
Добавлено (05.05.2014, 09:54) --------------------------------------------- Все разобраться. Я спасен ))). Написал на десятках форумах и только тут помогли. Еще раз спасибо.
|
|
| |
Гость | Дата: Вторник, 06.05.2014, 22:34 | Сообщение # 6 |
Группа: Гости
Статус:
| Ребят помогите. Может кто знает ( необходимо - слить 2 базы данных. Отсортировать записи и удалить дубли записей.
К примеру есть 2 базы (A.dbf, B.dbf) Файл на выходе будет C.dbf
Слепить базы я и сам могу, а вот отсортировать и удалить дубли записей загвоздка :( Есть ли в FoxPro функция удаления дублей?
В файлах по 3 поля "Kod, Vitt, Pr_Gh": - Отсортировать по полю Kod (от наименьшего к наибольшему) - Удалить дубли (При удалении дублей учитывать нужно все 3 поля).
Очень надо!
А ведь Вы даже не попробовали применить рекомендованный Вам совет на практике. Он не работает.
|
|
| |
Грустный работник | Дата: Среда, 07.05.2014, 00:01 | Сообщение # 7 |
Группа: Гости
Статус:
| А ведь Вы даже не попробовали применить рекомендованный Вам совет на практике. Он не работает.
))) Дело в том, что мне чуть ранее помогли. Отсортировать и удалить дубли :
SELECT c.dbf && Выбрать файл INDEX Kod TO tmp COMPACT UNIQUE && естественно если Kod символьный, иначе - привести их к символьному виду COPY TO tmp USE tmp COPY TO c.dbf USE c.dbf
delete from c.dbf where cast(Kod+Vitt+Pr_Gh as char(200))+dtos(date_dd) not in (select cast(Kod+Vitt+Pr_Gh as char(200))+dtos(dt) from (select Kod+Vitt+Pr_Gh,min(date_dd) dt group by Kod+Vitt+Pr_Gh) t0 )
Но все равно ни чего не получилось, час читал и делал, без результатно видать код не правильный (( потом что бы времени не терять сделал все в xls. Спасибо что отписались!
|
|
| |
Виталий П | Дата: Среда, 07.05.2014, 12:34 | Сообщение # 8 |
Группа: Гости
Статус:
| Подскажите, у меня есть файл "2014CenPert1.dbf" как можно из этого файла выбрать все дубли по полю "Tarif" и выделить только их в другой файл. Сруктуру поля строчная 35 за ранее спасибо.
|
|
| |
Admin | Дата: Среда, 07.05.2014, 13:50 | Сообщение # 9 |
 Самый главный )
Группа: Администраторы
Сообщений: 352
Награды: 11
Репутация: 1808
Статус: Offline
| Гость, Грустный работник, Виталий П,
Ребят, я понимаю, что очень трудно зарегистрироваться, но если Вы хотите, что бы Вам помогли или помогали... - это нужно делать ! ведь с зарегистрированным участникам проще общаться, цитировать добавлять файлы и т.д
Виталий П,
Цитата Виталий П (  ) Подскажите, у меня есть файл "2014CenPert1.dbf"как можно из этого файла выбрать все дубли по полю "Tarif" и выделить только их в другой файл. Сруктуру поля строчная 35 за ранее спасибо.
Вроде вот этот код Вам подойдет: Код select Tarif,cnt(*) as count from ? group by Tarif having cnt(*)>1 into dbf rezultat - Пишите в командной строке Foxpro - Выбираете файл "2014CenPert1.dbf" - Смотрите дубли в файле "rezultat"
Не проверял, но думаю работает! Может спецы по легче чего напишут )))
Самомнение — враг совершенствования.
|
|
| |
Катана | Дата: Среда, 07.05.2014, 23:43 | Сообщение # 10 |
 мини модератор
Группа: Модераторы
Сообщений: 82
Награды: 3
Репутация: 40
Статус: Offline
| >))) Дело в том, что мне чуть ранее помогли. >Отсортировать и удалить дубли :
я автор изначально предложенной строки: >select * from c order by kod into dbf resultat uniq
Вместо "uniq" надо было просто написать"dist". Вот и все. Баг фокса, что 'uniq' проскакивал
Но это в рамках поставленной Вами задачи.
В Ваших словах о разрешенной проблеме присутствует как минимум два новых поля, а это уже совсем другое дело.
Про тот код, который вы привели как - "помощь" - я никогда не поверю, что это работоспособно в прямом виде. Только после правки.
Добавлено (07.05.2014, 23:43) --------------------------------------------- >Подскажите, у меня есть файл "2014CenPert1.dbf"как можно из этого файла выбрать все дубли по полю "Tarif" >и выделить только их в другой файл. >Сруктуру поля строчная 35 >за ранее спасибо.
>Вроде вот этот код Вам подойдет: >Код >select Tarif,cnt(*) as count from ? group by Tarif having cnt(*)>1 into dbf rezultat
А не больше ли подойдет вот такой код : select * from 2014CenPert1 where Tarif in (select Tarif from 2014CenPert1 group by Tarif having cnt(*)>1) into dbf rezultat
? ************** Сори, пытался ответить на два разных письма, в двух разных ответах, но форум упорно объединяет их в один ответ, как бы я не противостоял этому. Поэтому пусть остается как есть. Надеюсь, кому-нибудь чем-то помог.
Сообщение отредактировал Катана - Среда, 07.05.2014, 23:51 |
|
| |