Показать не уникальные записи

Обсуждаем техничекие вопросы в этом разделе!

Показать не уникальные записи

Сообщение vif Ср май 22, 2013 4:46 pm

Имеем:
БК с полями
ContactId, HospitalId, Status, a,b,c....
Требуется:
показать набор не уникальных записей, по полям ContactId и HospitalId если Status = OPEN. Например, есть 4 записи:
Код: Выделить всё
Id  ContactId HospitalId Status a  b  c
1   c1        h1         OPEN   a1 b1 c1
2   c1        h1         OPEN   a2 b1 c78
3   c1        h1         CLOSE  a1 b1 c2
4   C0        h1         OPEN   a1 b1 c2

Должны отобразиться только записи 1 и 2 (у третьей Status <> OPEN), у 4-й - уникальный ContactId
vif
 
Сообщений: 32
Зарегистрирован: Ср авг 13, 2008 4:33 pm

Re: Показать не уникальные записи

Сообщение Master Сб июл 06, 2013 12:18 pm

Простыми операторами это сделать нельзя, так как нельзя в search spec ставить операции union и group by, так как search spec это конструкция where.
А вот "поиграть" с MVL на эти поля и далее сделать поле count на этот линк и в search spec указать это поле > 1 (это сама на себя) попробовать можно. Минус этого метода, что обработка калькулируемого поля происходит не в БД (запросе) а в памяти приложения (перебором), следовательно скорость не высокая и на большом объеме данных явно будут проблемы. Другой способ, в линке попробовать указать ограничения на саму себя, тогда можно EXISTS использовать.
НО!, это мои предположения как можно. Такого я не делал и рабочего варианта у меня нет.
Зовите меня просто - МАСТЕР!
Аватара пользователя
Master
Администратор
 
Сообщений: 169
Зарегистрирован: Пт авг 17, 2007 12:02 pm

Re: Показать не уникальные записи

Сообщение vif Вт июл 30, 2013 1:03 pm

Спасибо, мастер.
Был у нас вариант использовать BCHasRows в калькулируемом поле, но, это те же проблемы, о которых уже написано. Решено с помощью создания View на уровне БД.
vif
 
Сообщений: 32
Зарегистрирован: Ср авг 13, 2008 4:33 pm


Вернуться в Технический раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron