Имя: Пароль:
1C
1С v8
ЯзыкЗапросов: как условно выбрать исходную таблицу из двух?
0 ЕщеОдин Программист
 
08.04.16
06:15
Нужно в запросе в зависимости от условия выбрать одну из двух таблиц выборки данных. Я вижу вариант составить в подзапросе объединение из двух вариантов и с дополнительным полем признака, по которому в основном запросе сделать отбор. Есть ли еще какие конструкции?
1 Рэйв
 
08.04.16
06:22
А в чем условие?
2 los_hooliganos
 
08.04.16
06:45
запрос1
где выбор когда ф = &a тогда истина
иначе ложь конец

там делает с любым запросом.
можно 2 объединить а можно каждый выбрать отдельно, а можно ни одного
3 los_hooliganos
 
08.04.16
06:46
а еще можно так 10 запросов объединять
4 ЕщеОдин Программист
 
08.04.16
06:47
(2) да, а если условие зависит от значения в реквизите, полученного в этом же запросе?
5 los_hooliganos
 
08.04.16
06:49
(4) засунь это в ГДЕ
В Транзакт Скуль можно делать коррелированные подзапросы.
1С это тоже давно обещала.

http://www.sql.ru/articles/mssql/2005/032101usingcorrelatedsubquery.shtml
6 los_hooliganos
 
08.04.16
06:51
(4) Если резальт подзапроса идет в сравнение где, нужно к резальту применять агрегат

Например
ГДЕ
(выбрать МАКСИМУМ(Количество) Из таблица) = 10
7 ЕщеОдин Программист
 
08.04.16
06:54
(6) в смысле значение условия определяется в запросе-владельце, куда после отправляется результат подзапроса. Который в свою очередь либо первый запрос, либо второй - в зависимости от условия.
8 los_hooliganos
 
08.04.16
06:57
(7) Я не понял смысла вашей реплики
9 ЕщеОдин Программист
 
08.04.16
07:12
(8) к примеру в моем примере, я хочу проверить доступ до объекта, и что нибудь вроде этого (интерес в реализуемости, а не в возможности это разложить на более простые конструкции):

ГДЕ
Объект.Разделитель В
ВЫБОР КОГДА ТекПользователь.ТипРазделителя = 1 ТОГДА
    (Выбрать ДопустимыеРазделители
     ИЗ Таблица1)
ИНАЧЕ
     (Выбрать ДопустимыеРазделители
     ИЗ Таблица2)
КОНЕЦ
Закон Брукера: Даже маленькая практика стоит большой теории.