![]() |
![]() |
![]() |
|
сборка 2 таблиц, аля в t-sql подзапрос в селекте | ☑ | ||
---|---|---|---|---|
0
Boyar
05.04.12
✎
18:22
|
Просьба помочь проблема такая, есть следующее:
1. Регистр Сведений там Клиент и Активность булево, выбирается по значению Истина 2. Регистр Накопления оборотный и там Клиент, типУслуги и количество так вот нужно как то выбрать только активных клиентов и по ним типУслуги (которой он пользовался максимально больше всех остальных) Клиент - типУслуги Клиент2 - типУслуги и т.д. |
|||
1
Boyar
05.04.12
✎
18:23
|
это живой или все таки мертвый форум? :D
|
|||
2
ukolabrother
05.04.12
✎
18:25
|
1. выбрать активных в клиенты
2. выбрать клиент, услуга(клиент в клиенты) |
|||
3
rs_trade
05.04.12
✎
18:27
|
в параметр регистра накопления передать таблицу активных клиентов. так?
|
|||
4
ukolabrother
05.04.12
✎
18:28
|
виртуальную таблицу, выборку которую сделал раньше в предыдущем запросе.
|
|||
5
rs_trade
05.04.12
✎
18:32
|
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад В (ВЫБРАТЬ Ссылка ИЗ тзСклад)) КАК ТоварыНаСкладахОстатки
|
|||
6
ukolabrother
05.04.12
✎
18:33
|
(5) я не понимаю вообще тебя, ты спрашиваешь, потом показываешь пример.
|
|||
7
Boyar
06.04.12
✎
05:28
|
что то я не понимаю вас, я вроде дословно описал проблему, а ответы не понятные :(
вот такое не пашет :( [CODE] ВЫБРАТЬ КлиентыВКлубеСрезПоследних.Клиент, ВложенныйЗапрос.Занятие ИЗ РегистрСведений.КлиентыВКлубе.СрезПоследних(, Присутствие) КАК КлиентыВКлубеСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1 ПосещенияКлиентовОбороты.Клиент КАК Клиент, ПосещенияКлиентовОбороты.Занятие КАК Занятие ИЗ РегистрНакопления.ПосещенияКлиентов.Обороты КАК ПосещенияКлиентовОбороты) КАК ВложенныйЗапрос ПО КлиентыВКлубеСрезПоследних.Клиент = ВложенныйЗапрос.Клиент СГРУППИРОВАТЬ ПО КлиентыВКлубеСрезПоследних.Клиент, ВложенныйЗапрос.Занятие [/CODE] |
|||
8
Boyar
06.04.12
✎
05:46
|
(7) но если подзапрос был бы в селекте (выбрать) то по каждому контрагенту можно было в РН сделать отличную выборку, а так собираются обе таблицы и соединяются и собрать вторую как нужно заранее не удается :(
|
|||
9
Boyar
06.04.12
✎
05:50
|
(8) проблема именно в том, что во второй таблице той что РН обороты там 2 измерения и нужно по каждому Клиенту вытащить самую посещаемую услугу, наложить фильтр по активности его из регистра сведений не проблема.
в РН если сделать акрекатную типа МАКСИМУМ(Кол), то тогда группировать приходится все измерения и итог получается не тем, получается максимум от кол, по каждому клиенту и услуге, а это не то. :( |
|||
10
Boyar
06.04.12
✎
05:54
|
(7) если бы был t-sql я бы сделал так и все бы работало :(
[CODE] ВЫБРАТЬ КлиентыВКлубеСрезПоследних.Клиент КАК Клиент, (ВЫБРАТЬ ПЕРВЫЕ 1 ПосещенияКлиентовОбороты.Занятие КАК Занятие ИЗ РегистрНакопления.ПосещенияКлиентов.Обороты КАК ПосещенияКлиентовОбороты ГДЕ ПосещенияКлиентовОбороты.Клиент = КлиентыВКлубеСрезПоследних.Клиент КАК Клиент УПОРЯДОЧИТЬ ПО ПосещенияКлиентовОбороты.КоличествоОборот УБЫВ) КАК Занятие ИЗ РегистрСведений.КлиентыВКлубе.СрезПоследних(, Присутствие) КАК КлиентыВКлубеСрезПоследних [/CODE] [B][U]и проблем не было бы, но так в 8.2 нельзя :([/U][/B] |
|||
11
Boyar
06.04.12
✎
14:26
|
(10) Сам себе отвечаю для истории как решил :D а форум однако мертвый
[CODE] ВЫБРАТЬ ПосещенияКлиентовОбороты.Клиент, ПосещенияКлиентовОбороты.Занятие, ПосещенияКлиентовОбороты.КоличествоОборот КАК КоличествоОборот ПОМЕСТИТЬ РазличныеПоКлиентам ИЗ РегистрНакопления.ПосещенияКлиентов.Обороты КАК ПосещенияКлиентовОбороты ; X ВЫБРАТЬ РазличныеПоКлиентам.Клиент, МАКСИМУМ(РазличныеПоКлиентам.КоличествоОборот) КАК КоличествоОборот ПОМЕСТИТЬ МаксимальныеПоКлиентам ИЗ РазличныеПоКлиентам КАК РазличныеПоКлиентам СГРУППИРОВАТЬ ПО РазличныеПоКлиентам.Клиент ; X ВЫБРАТЬ РазличныеПоКлиентам.Клиент, РазличныеПоКлиентам.Занятие ПОМЕСТИТЬ ГотовыеМаксимальные ИЗ РазличныеПоКлиентам КАК РазличныеПоКлиентам ВНУТРЕННЕЕ СОЕДИНЕНИЕ МаксимальныеПоКлиентам КАК МаксимальныеПоКлиентам ПО РазличныеПоКлиентам.Клиент = МаксимальныеПоКлиентам.Клиент И РазличныеПоКлиентам.КоличествоОборот = МаксимальныеПоКлиентам.КоличествоОборот ; X ВЫБРАТЬ ГотовыеМаксимальные.Клиент, ГотовыеМаксимальные.Занятие ИЗ ГотовыеМаксимальные КАК ГотовыеМаксимальные ГДЕ ГотовыеМаксимальные.Клиент В (ВЫБРАТЬ КлиентыВКлубеСрезПоследних.Клиент ИЗ РегистрСведений.КлиентыВКлубе.СрезПоследних(, Активность И Присутствие) КАК КлиентыВКлубеСрезПоследних) [/CODE] |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |