Имя: Пароль:
1C
1С v8
Выборка в запросе
,
0 volkVVV
 
02.04.14
20:29
Доброго времени суток.
Возник вопрос, как можно в запросе выбрать значения из строк и выбрать их как поля. напишу пример.
У меня такой результат запроса:
|ФИО      |ВидРасчета   |Размер
|Иванов   |Оклад        |850
|Иванов   |Надбавка     |330

мне нужно разделить их по полям след. образом:
|ФИО      |ВидРасчета   |Оклад   |Надбавка
|Иванов   |Оклад        |850     |330

Может не очень хорошо сформировал вопрос, но как мог.
Каким образом это можно сделать?
1 volkVVV
 
02.04.14
20:31
ВЫБРАТЬ
НачислениеЗарплатыРаботникамОрганизацийНачисления.Физлицо,
НачислениеЗарплатыРаботникамОрганизацийНачисления.ВидРасчета,
НачислениеЗарплатыРаботникамОрганизацийНачисления.Размер
ИЗ ....
вот начало запрос
2 m-serg74
 
02.04.14
20:40
(1) откуда в второй колонке "Оклад", почему именно он, а не надбавка, сколько всего видов расчета может быть? если физлиц несколько и у них разные виды расчета как таблица будет выглядеть?
3 volkVVV
 
02.04.14
20:42
(2) можно исключить вид Колонку ВидРасчета. Оставить так:

|ФИО      |Оклад   |Надбавка
|Иванов   |850     |330
4 volkVVV
 
02.04.14
20:43
(2) видов расчета может быть 1-4
5 volkVVV
 
02.04.14
20:56
Никто не знает? Очень нужно...
6 m-serg74
 
02.04.14
21:06
(5) значит через ВЫБОР когда "Оклад" тогда Начислено иначе 0
и после всего группировка по физлицу
7 hhhh
 
02.04.14
22:27
(5) ну запрос не трогайте, настройками скд рулите, ФИО поместите в строчки, вид расчета в колонки.
8 m-serg74
 
02.04.14
22:29
(7) откуда про СКД узнал?
9 jk3
 
03.04.14
10:26
(0) Не универсально, под этот конкретный пример:

ВЫБРАТЬ
    "Иванов" КАК ФИО,
    "Оклад" КАК ВидРасчета,
    850 КАК Размер
ПОМЕСТИТЬ А

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Иванов",
    "Надбавка",
    330
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    А.ФИО,
    А.ВидРасчета,
    А.Размер,
    А2.Размер КАК Надбавка
ИЗ
    А КАК А
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ А КАК А2
        ПО А.ФИО = А2.ФИО
ГДЕ
    А.ВидРасчета = "Оклад"
    И А2.ВидРасчета = "Надбавка"
10 _fvadim
 
03.04.14
10:41
Если ВидРасчёта имеет конечное количество значений то очень просто:

ВЫБРАТЬ
ФИО,
СУММА(ВЫБОР
    КОГДА Вид = "Оклад" Тогда Сумма
    ИНАЧЕ 0
КОНЕЦ) КАК Оклад,
СУММА(ВЫБОР
    КОГДА Вид = "Надбавка" Тогда Сумма
    ИНАЧЕ 0
КОНЕЦ) КАК Надбавка
ИЗ
(
ВЫБРАТЬ "Иванов" КАК ФИО, "Оклад" КАК Вид, 850 КАК Сумма ОБЪЕДИНИТЬ
ВЫБРАТЬ "Иванов" КАК ФИО, "Надбавка" КАК Вид, 350 КАК Сумма ОБЪЕДИНИТЬ
ВЫБРАТЬ "Петров" КАК ФИО, "Оклад" КАК Вид, 1050 КАК Сумма ОБЪЕДИНИТЬ
ВЫБРАТЬ "Петров" КАК ФИО, "Надбавка" КАК Вид, 250 КАК Сумма
) КАК ыыы
СГРУППИРОВАТЬ ПО ФИО

Запрос рабочий, можно опробовать в консоли
11 _fvadim
 
03.04.14
10:45
оказывается в (6) уже было предложено