|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
Puzoter
03.04.14
✎
12:51
|
Вопрос 1 - можно ли в завпросе выбрать только вычисляемые поля, т.е. не указывать источник ИЗ?
вопрос 2 - мне нужно организовать выбор в зависимости от количества записей подзапроса, как составить условие? Вот так не работает: ВЫБРАТЬ Выбор Когда (выбрать Количество(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоЗаписей ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния) = 1 Тогда 1 Иначе 2 Конец КАК Количество Из РегистрСведений.РаботникиОрганизаций; |
|||
1
Wobland
03.04.14
✎
12:53
|
1. да
2. имеющие |
|||
2
Puzoter
03.04.14
✎
12:54
|
(1) 1 как подскажи
|
|||
3
Wobland
03.04.14
✎
12:55
|
что подсказать?
|
|||
4
Лефмихалыч
03.04.14
✎
12:56
|
(0) 2 - при обходе выборки заменяй всё, кроме 1 на 2. Ну, или, если дело в СКД, пользовательское поле добавьте.
А зачем это торжество разума над логикой, если не секрет? |
|||
5
Godofsin
03.04.14
✎
12:56
|
(3) Кто убил Кеннеди?
|
|||
6
Puzoter
03.04.14
✎
12:57
|
(1) Понял, спасибо
|
|||
7
Wobland
03.04.14
✎
12:58
|
(5) снайпер. целую в щёчку, ваш К.О.
|
|||
8
Puzoter
03.04.14
✎
12:59
|
(4) Нужно проверить результат запроса и в зависимости от него выполнить тот или иной запрос. Не знаю, как иначе составить условие
|
|||
9
Wobland
03.04.14
✎
13:03
|
(8) а сразу один, нормальный не?
|
|||
10
Puzoter
03.04.14
✎
13:07
|
(9) Наверно можно, просто интересно было почему вот так не работает
|
|||
11
ramir
03.04.14
✎
13:08
|
(1) Как это понимать? Какого размера выборка должна быть, одна строка?
Если размер выборки равен размеру вложенного запроса, то просто выбирайте вычисляемые поля из вложенного запроса Выбрать 1 как Поле1 из (Выбрать ... ) как ВложенныйЗапрос |
|||
12
Wobland
03.04.14
✎
13:08
|
(10) это язык такой
|
|||
13
Puzoter
03.04.14
✎
14:00
|
(12) вот это я имел в виду
ВЫБРАТЬ Выбор Когда 2 В (выбрать Количество(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоЗаписей ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния) Тогда 1 Иначе 2 Конец КАК Количество |
|||
14
Wobland
03.04.14
✎
14:01
|
(13) а по-человечьи это как будет?
|
|||
15
Puzoter
03.04.14
✎
15:00
|
(14) пожалуй вот так...
Выбрать ПЕРВЫЕ 1 * ИЗ (Выбрать ПЕРВЫЕ 1 * ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = &ВидЗанятости Объединить ВСЕ Выбрать ПЕРВЫЕ 1 * ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния Объединить ВСЕ Выбрать ПЕРВЫЕ 1 * ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = &ПричинаИзмененияСостояния И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = &ВидЗанятости Объединить ВСЕ Выбрать ПЕРВЫЕ 1 * ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = &ПричинаИзмененияСостояния) КАК Подзапрос |
|||
16
Wobland
03.04.14
✎
15:04
|
по-человечьи - это русским языком. и первые 1 без упорядочивания редко имеет смысл
|
|||
17
Puzoter
03.04.14
✎
15:13
|
(16) Нужно выбрать записи из таблицы в зависимости от приоритета
1. Условие1=Истина, Условие2=Истина 2. Условие1=Истина 3. Условие1=Ложь, Условие2=Истина 4. тот, кто остался |
|||
18
Серго62
03.04.14
✎
15:24
|
+ (17)
5. кто не спрятался я не виноват |
|||
19
Puzoter
03.04.14
✎
15:49
|
(16) Т.е. последовательность объединений не влияет на порядок записей в результирующем наборе?
|
|||
20
Wobland
03.04.14
✎
15:53
|
(19) нет. несмотря на то, что чаще всего порядок будет по порядку
|
|||
21
Puzoter
03.04.14
✎
16:21
|
О, наваял с порядком)) Кто проще?
Выбрать ПЕРВЫЕ 1 РаботникиОрганизацийСрезПоследних.*, 1 КАК приоритет Поместить т1 ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = &ВидЗанятости Упорядочить по Период Убыв ; Выбрать ПЕРВЫЕ 1 РаботникиОрганизацийСрезПоследних.*, 2 Поместить т2 ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния Упорядочить по Период Убыв ; Выбрать ПЕРВЫЕ 1 РаботникиОрганизацийСрезПоследних.*, 3 Поместить т3 ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = &ПричинаИзмененияСостояния И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = &ВидЗанятости Упорядочить по Период Убыв ; Выбрать ПЕРВЫЕ 1 РаботникиОрганизацийСрезПоследних.*, 4 Поместить т4 ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник.Физлицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = &ПричинаИзмененияСостояния Упорядочить по Период Убыв ; Выбрать ПЕРВЫЕ 1 * ИЗ (Выбрать ПЕРВЫЕ 1 * ИЗ т1 ОБЪЕДИНИТЬ ВСЕ Выбрать ПЕРВЫЕ 1 * ИЗ т2 ОБЪЕДИНИТЬ ВСЕ Выбрать ПЕРВЫЕ 1 * ИЗ т3 ОБЪЕДИНИТЬ ВСЕ Выбрать ПЕРВЫЕ 1 * ИЗ т4 Упорядочить по приоритет) КАК Подзапрос |
|||
22
kumena
03.04.14
✎
16:34
|
(21) зачем это надо?
|
|||
23
kumena
03.04.14
✎
16:35
|
+22 проще в регистр залезть и посмотреть
|
|||
24
Puzoter
03.04.14
✎
16:36
|
(23) А как это сделать? Предложи свой вариант
|
|||
25
kumena
03.04.14
✎
16:38
|
я из вашего запроса не понял что надо сделать
|
|||
26
kumena
03.04.14
✎
16:38
|
и зачем он вообще
|
|||
27
Puzoter
03.04.14
✎
16:42
|
см. 16
|
|||
28
Puzoter
03.04.14
✎
16:42
|
т.е. (17)
|
|||
29
Wobland
03.04.14
✎
17:16
|
(25) спасибо, полегчало. думал, всем всё ясно, а я один, как идиот ;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |