![]() |
![]() |
![]() |
|
Вычисляемое поле | ☑ | ||
---|---|---|---|---|
0
Hazer79
04.09.08
✎
09:56
|
Здравствуйте ! Подскажите, пожалуйста, возможно ли сделать т.н. вычисляемое поле в запросе, чтобы значения в нём вычислялись с помощью подзапросов или ещё как ?
Т.е., например, идёт перечисление полей выборки из регистра, а потом в качестве ещё одного поля указывается целый запрос, результат которого и должен помещаться в это поле. Возможно ли такое ? |
|||
1
Долорес И
04.09.08
✎
09:57
|
нет
|
|||
2
Maxus43
04.09.08
✎
09:57
|
дык, вложеный запрс...
|
|||
3
Долорес И
04.09.08
✎
09:58
|
(2)перечитай вопрос
|
|||
4
selenat
04.09.08
✎
09:58
|
(1) это почему?
|
|||
5
Maxus43
04.09.08
✎
09:59
|
(3) перечитал, не возражаю против (0)
|
|||
6
Hazer79
04.09.08
✎
09:59
|
А вообще для решения подобной задачи как можно выкрутиться ?
|
|||
7
Maxus43
04.09.08
✎
10:00
|
только чуть по другому чем в (2)...
Добавь новое поле, в окне где выражение тыкай правой кнопкой, внизу - конструктор запроса... (3) возражения? |
|||
8
Defender aka LINN
04.09.08
✎
10:01
|
(4) Потому что нельзя. Единственный вариант - с табличными частями, но это не то.
|
|||
9
zag2art
04.09.08
✎
10:05
|
(7) У меня чё-то не выходит по твоей инструкции. Говорит синтаксическая ошибка...
|
|||
10
Hazer79
04.09.08
✎
10:06
|
Дело осложняется ещё и тем, что мне нужно в запрос, вычисляющие значение этого нового поля, передать дату документа, которая вытаскивается в основном запросе... :-(
|
|||
11
Maxus43
04.09.08
✎
10:07
|
(9) на курсах помню что использовали эту штуку, для определённых случаев она, щас пороюсь в материалах крсов
|
|||
12
Maxus43
04.09.08
✎
10:08
|
(10) юзай вложеный запрос и соединяй по дате и ещё чемунить...
|
|||
13
zag2art
04.09.08
✎
10:10
|
(10) Вложенный запрос не поможет, он не видит внешнего - наверное придется соединениями пользоваться.
|
|||
14
Rabajaba
04.09.08
✎
10:11
|
А как вы собственно представляете результат "почти" SQL запроса 1С с полем типа "Таблица" ?!
|
|||
15
Hazer79
04.09.08
✎
10:16
|
Вот здесь : Книга знаний: v8: Вложенные запросы
в самом низу написано "Для построения вложенных запросов, связанных с внешним, т.е. вложенный запрос должен выполниться для каждой строки внешнего запроса, нужно сделать левое внешнее соединение и сделать весь этот запрос вложенным." Сейчас попробуем... :-) |
|||
16
Rabajaba
04.09.08
✎
10:22
|
Мой вопрос стоял немного иначе:
Как вы себе представляете это: Поле 1 ПолеТаб1 -------------------------------- | |____|_____|____| | |____|_____|____| |______________|____|_____|____| Ни одна нормальная система такого не выдаст. Такая конструкция всегда разворачивается в обычную таблицу с повторение первого поля (в данном примере). "Для построения вложенных запросов, связанных с внешним, т.е. вложенный запрос должен выполниться для каждой строки внешнего запроса, нужно сделать левое внешнее соединение и сделать весь этот запрос вложенным." Фразировка насторожила ... Вложенный запрос всеравно выполняется первым! просто левым соединением с внешним будут сопоставлены их строки и не более того. Не следует это читать как "во внешнем запросе я запущу ""Цикл"" по внутреннему запросу." |
|||
17
Hazer79
04.09.08
✎
10:25
|
Сопоставлены строки - это как ?
|
|||
18
Долорес И
04.09.08
✎
10:27
|
(15)да, а так можно. тебе что нужно кконкретно?
|
|||
19
Rabajaba
04.09.08
✎
10:29
|
Пример "Таблицы" в поле запроса:
Поле 1 ПолеТаб1 -------------------------------- | |__а_|_____|____| | 1 |____|__б__|____| |______________|____|_____|__в_| | |____|__г__|____| | 2 |_д__|_____|____| |______________|____|_____|__е_| всегда будет выборка вида: 1|a| | | 1| |б| | 1| | |в| 2| |г| | 3|д| | | 4| | |е| |
|||
20
Hazer79
04.09.08
✎
10:32
|
Конкретную задачу обьяснять долго - она сложна сама по себе. Но в данном случае я хочу выбирать из регистра накопления (УчётВзаиморасчётовОстатки) номенклатуру с датами документов, передавать эти даты во вложенный запрос, где будет вычисляться количество вхождений дат праздников из справочника праздников в период между датой документа и текущей датой (передаётся параметром).
Вот вкратце так... |
|||
21
Hazer79
04.09.08
✎
10:34
|
Пардон, не номенклатуру выбирать, а документы... Ошибся. :-)
|
|||
22
selenat
04.09.08
✎
10:38
|
(16,19) в чем проблема то? Итоги чтоли отменили?
|
|||
23
Maxus43
04.09.08
✎
10:38
|
короче, нарыл я в каких случаях катит вариант (7):
ВЫБОР КОГДА Банки.Ссылка В (ВЫБРАТЬ Банки.Ссылка ИЗ Справочник.Банки КАК Банки ГДЕ (НЕ Банки.ЭтоГруппа)) ТОГДА Банки.Ссылка ИНАЧЕ "" КОНЕЦ т.е. например в этом случае чтобы не передавать массив банков которые надо вытянуть, можно запросом его получить... к случаю (0) не совсем подходит... но всё же тож неплохая вещь при надобности) |
|||
24
Rabajaba
04.09.08
✎
10:40
|
Итоги это не "Таблица" в поле. Это лишь удобный способ получить только те строки (читай - часть таблицы запроса), которые имеют одинаковое итоговое поле.
|
|||
25
Mitriy
04.09.08
✎
10:47
|
(24) частный случай <"Таблица" в поле>:
ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Товары.( НомерСтроки, ЕдиницаИзмерения, Количество, Номенклатура, Цена, Сумма, СтавкаНДС, СуммаНДС, ДокументОприходования, Себестоимость ) ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |
|||
26
Rabajaba
04.09.08
✎
10:52
|
Хм. Не знал. Прошу прощения.
А я ещё ругался на то, что pivot нету ... |
|||
27
Hazer79
04.09.08
✎
10:53
|
Да, Maxus43, неплохая штука, но мне она действительно, вроде не подходит... :-(
|
|||
28
selenat
04.09.08
✎
10:55
|
(26) чего не знал? Это просто другой синтаксис, который, как и итоги, позволяет сформировать иерархический результат...
|
|||
29
Maxus43
04.09.08
✎
10:57
|
(27) по постановке в (20) всё таки вложеными запросами можно разрулить, просто при связи вложеного с основным запросом использовать связь по датам, в связи не ставь "=", а => иль <=...
|
|||
30
Rabajaba
04.09.08
✎
11:04
|
Я вот не пойму, в (25) где указывается связь по "Ссылка=Ссылка"? Или как её указать?
|
|||
31
Hazer79
04.09.08
✎
14:06
|
Что-то задваиваются записи в результате при левом соединении... :-(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |