Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Октябрь 18, 2018, 02:41:16 pm

Автор Тема: Загрузка данных без дублей по одному полю  (Прочитано 106 раз)

Оффлайн Валерий

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
Добрый день!
Имеется таблица:

ID_cl     ФИО
1           Иванов И.И.
1           Иванов Иван Ив.
1           Иван Иванов
2           Петров Пётр
3           Сидоров С.С.
3           Сидоров Сидор

Нужно загрузить данные в QS как, чтобы поле ID_cl  не повторялось, т.е. в экселе это называлось бы уделением дублей по 1му столбцу. После загрузки должно остаться:

ID_cl     ФИО
1           Иванов И.И.
2           Петров Пётр
3           Сидоров С.С.

или

ID_cl     ФИО
1           Иван Иванов
2           Петров Пётр
3           Сидоров Сидор

Т.е. из 2го столбца должно остаться одно любое значение.
Заранее спасибо

Онлайн Hugo

  • Новичок
  • *
  • Сообщений: 12
  • Страна: lv
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Загрузка данных без дублей по одному полю
« Ответ #1 : Октябрь 09, 2018, 12:39:55 pm »
Добрый день.
Я новичок, поэтому не претендую на идеальный код, и сам вижу недостатки (кстати может кто подскажет как загрузить всё в другую таблицу так фильтруя), но для сортированных данных работает так:
Personal:
Load * Inline [
ID_cl|ФИО
1|Иванов И.И.
1|Иванов Иван Ив.
1|Иван Иванов
2|Петров Пётр
3|Сидоров С.С.
3|Сидоров Сидор
] (delimiter is '|');

Otbor:
load * ,ID_cl as tmp
resident Personal
where [ID_cl]<>peek(ID_cl)
;
drop table Personal;
rename table Otbor to Personal;
drop fields tmp from Personal;

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1206
  • Страна: ru
  • Рейтинг: +128/-0
    • Просмотр профиля
Re: Загрузка данных без дублей по одному полю
« Ответ #2 : Октябрь 09, 2018, 12:42:46 pm »
Привет, либо так:

t1:
LOAD * INLINE [
    F1, F2
    1, Иванов И.И.
    1, Иванов Иван Ив.
    1, Иван Иванов
    2, Петров Пётр
    3, Сидоров С.С.
    3, Сидоров Сидор
];

t2:
LOAD Distinct F1 Resident t1;
Left join (t2)
load F1,
MinString(F2) as ФИО
Resident t1
Group by F1;

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Загрузка данных без дублей по одному полю
« Ответ #2 : Октябрь 09, 2018, 12:42:46 pm »

Оффлайн Валерий

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: Загрузка данных без дублей по одному полю
« Ответ #3 : Октябрь 09, 2018, 02:02:00 pm »
Благодарю   :)

Оффлайн Maestro

  • Новичок
  • *
  • Сообщений: 2
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Загрузка данных без дублей по одному полю
« Ответ #4 : Октябрь 17, 2018, 09:36:23 am »
Personal:
Load * Inline [
ID_cl|ФИО
1|Иванов И.И.
1|Иванов Иван Ив.
1|Иван Иванов
2|Петров Пётр
3|Сидоров С.С.
3|Сидоров Сидор
] (delimiter is '|');

Otbor:
LOAD ID_cl,
FirstValue(ФИО)
Resident Personal
Group By ID_cl;

DROP Table Personal;

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Загрузка данных без дублей по одному полю
« Ответ #4 : Октябрь 17, 2018, 09:36:23 am »