Помогите придумать запрос

Форум 1С: Одинэс.Ру

Найти!

Помогите придумать запрос

Rediska
21.07.2009 - 15:30
Платформа 8.1
В общем задача следующая, есть заначит таблица "Контрагент, телефон", хочу к ней сделать запрос и получить такую таблицу "Контрагент,ВсеТелефоны"
Ну все телефоны - это через запятую все телефоны это контаргента из данной вначале таблицы. Такое кто-нить делал? Это вапче возможно?
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
23.11.2024 - 08:17
Смотри также:
Раскрасить строки ДокументСписок
Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса
Доступ и т.д. Не могу понять почему неактивные окошки

Re: Помогите придумать запрос

angro
1 - 21.07.2009 - 16:05
при фиксированном максимальном значении количества телефонов возможно

Re: Помогите придумать запрос

Rediska
2 - 21.07.2009 - 17:02
Ну допустим их 2, на самом деле может и сто если взять типовую конфигурацию УТ, но на практике 3-4

Re: Помогите придумать запрос

Billi
3 - 21.07.2009 - 17:19
0-Rediska >Имхо, в данном случае лучше обработать результат запроса.

Re: Помогите придумать запрос

Rediska
4 - 21.07.2009 - 17:23
Ну для это го не надо семи пядей во лбу иметь, задачя именно сделать это в запросе, потому что это всего лишь подзадача, а нужен один большой запрос, где это будет частью + например отборы всякие должны на него тоже влиять

Re: Помогите придумать запрос

Billi
5 - 21.07.2009 - 17:32
4-Rediska >Сам подумай, как запрос сможет записи превратить в поля?
Перед главным запросом запихивай через цикл данные в тз, тз загоняй во временную таблицу, а затем из нее вытягивай сведения.

Интересные темы

odines.ru
23.11.2024 - 08:17
Смотри также:
1C 8.1 и MSSQL 2005
OLE подключение 8-ок.
Упрощенка

Re: Помогите придумать запрос

Rediska
6 - 21.07.2009 - 17:39
Ну так я умею, но вдруг чудо, раз я могу почему Запрос не может :) хотя по лгике конечно маловероятно

Re: Помогите придумать запрос

Billi
7 - 21.07.2009 - 17:45
6-Rediska >В семерке прямым запросом такое можно было бы сделать, но все равно пришлось бы создавать процедуру и в ней цикл, правда все это было бы на сервере и на выходе ты бы получил готовую табличку. Но в восьмерке как всегда хотели как лучше, а получилось... SQL только для хранения таблиц, а все операции над ними делай в самой одинэске одинэсовским языком.

Re: Помогите придумать запрос

Rediska
8 - 21.07.2009 - 17:59
Ну вот эту дрянь надо засунуть в один из универсальных отчетов УТ10.3, вот в чем глобальная задача, надо чтобы этот запрос отработал, учитывая фильтры и потом его результат обработанный ещё приклеить к основному запросу.

Re: Помогите придумать запрос

Billi
9 - 21.07.2009 - 18:07
8-Rediska >Ну значит пиши процедуру, и где-нибудь вызывай ее для каждого контрагента уже после того как выполнишь запрос. Если серверный вариант, то лучше процедуру выполнять на сервере.

Re: Помогите придумать запрос

Billi
10 - 21.07.2009 - 18:09
Может завтра тебе кто-нибудь чего-нибудь другое посоветует, а у меня уже котелок не варит, два часа ночи, пошел спать.

Re: Помогите придумать запрос

Rediska
11 - 22.07.2009 - 06:11
ну вот и завтра, значит ночью поситила меня мысль, а чем числа от строк отличаются? да ни чем побольше только, а в данной задаче требуется свернуть таблицу по контрагенту и сложить в строку все его телефоны(строка 11 симвоолов), тоест еслиб телефон это было число, то никаких прблем функция сумма и вперед. Может ли запрос складывать строки обычная опреация конкатенции строк вроде не проблема.

Re: Помогите придумать запрос

Lexusss
12 - 22.07.2009 - 06:26
(1) +1 Причем очень легко

Re: Помогите придумать запрос

Rediska
13 - 22.07.2009 - 06:36
(12) ну так как?

Re: Помогите придумать запрос

ЖКК
14 - 22.07.2009 - 06:45
13-Rediska > вариант на T-SQL проканает?

Re: Помогите придумать запрос

Lexusss
15 - 22.07.2009 - 06:56
ВЫБРАТЬ Контрагент, Телефоны
ПОМЕСТИТЬ ПолныйСписок
ИЗ РегистрСведений.КонтактнаяИнформация
ГДЕ Бла-бла-бла
;
ВЫБРАТЬ Контрагент, МИНИМУМ(Телефон) КАК ПервыйТелефон
ПОМЕСТИТЬ ПервыеТелефоны
ИЗ ПолныйСписок
СГРУППИРОВАТЬ ПО Контрагент
;
ВЫБРАТЬ ПОлныйСписок.КОнтрагент, МИНИМУМ(Телефон) КАК ВторойТелефон
ПОМЕСТИТЬ ВторыеТелефоны
ИЗ ПолныйСписок КАК ПОлныйСписок
ЛЕВОЕ СОЕДИНЕНИЕ ПервыеТелефоны КАК ПервыеТелефоны
ПО ПОлныйСписок.Контрагент = ПервыеТелефоны.Контрагент
ГДЕ Телефон <> ПервыйТелефон
СГРУППИРОВАТЬ ПО ПОлныйСписок.Контрагент
;
// И так далее сколько надо телефонов
;
ВЫБРАТЬ ПервыеТелефоны.Контрагент, ПервыйТелефон + ЕСТЬNULL(ВторойТелефон, "") + ЕстьNULL(ТретийТелефон, "") + ...
ИЗ ПервыеТелефоны
ЛЕВОЕ СОЕДИНЕНИЕ ВторыеТелефоны
ПО ПервыеТелефоны.Контрагент = ВторыеТелефоны.Контрагент
// И так далее скоко надо телефонов
Где то так. Синтаксис не проверял :-)

Re: Помогите придумать запрос

Rediska
16 - 22.07.2009 - 07:02
Спсибо , проверю, отпишусь :)
К списку тем 1 > К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Фоновое задание может сохранить файл на диск? Очень простенький вопрос! »
© 2009 Форум 1С: Одинэс.Ру