рубрики: Фишки | Дата: 14 января, 2016
Недавно столкнулся с ситуацией когда надо было в запросе значения в колонках расположить в строках. Если конкретнее, надо было сделать запрос к регистру накопления СтраховыеВзносыИсчисленные и выбрать из него ресурсы: ПФРСтраховая, ПФРНакопительная, ФСС, ФФОМС, ТФОМС, но сделать это таким образом, чтобы значения каждого ресурса располагались не каждый в отдельной колонке, а в одной колонке друг под другом.
То есть если делаем обычный запрос к регистру:
ВЫБРАТЬ
СтраховыеВзносыИсчисленные.ФизЛицо,
СтраховыеВзносыИсчисленные.Организация,
СтраховыеВзносыИсчисленные.ПФРСтраховая,
СтраховыеВзносыИсчисленные.ПФРНакопительная,
СтраховыеВзносыИсчисленные.ФСС,
СтраховыеВзносыИсчисленные.ФФОМС,
СтраховыеВзносыИсчисленные.ТФОМС
ИЗ
РегистрНакопления.СтраховыеВзносыИсчисленные КАК СтраховыеВзносыИсчисленные
получаем вот такой результат:
Физлицо | Организация | ПФРСтраховая | ПФРНакопительная | ФСС | ФФОМС | ТФОМС |
---|---|---|---|---|---|---|
Иванов Иван Иваныч | ООО «Иванов» | 3500,00 | 1500,00 | 725,00 | 275,00 | 500,00 |
а нужно было преобразовать его вот в такой:
Физлицо | Организация | ВидНалога | Сумма |
---|---|---|---|
Иванов Иван Иваныч | ООО «Иванов» | ПФРСтраховая | 3500,00 |
Иванов Иван Иваныч | ООО «Иванов» | ПФРНакопительная | 1500,00 |
Иванов Иван Иваныч | ООО «Иванов» | ФСС | 725,00 |
Иванов Иван Иваныч | ООО «Иванов» | ФФОМС | 275,00 |
Иванов Иван Иваныч | ООО «Иванов» | ТФОМС | 500,00 |
Решение следующее:
ВидНалога |
---|
ПФРСтраховая |
ПФРНакопительная |
ФСС |
ФФОМС |
ТФОМС |
с помощью вот такого запроса:
ВЫБРАТЬ
"ПФРНакопительная" КАК ВидНалога
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ПФРСтраховая"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ФСС"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ФФОМС"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ТФОМС"
ВЫБРАТЬ
ПереченьНалогов.ВидНалога
ПОМЕСТИТЬ ВТ_ВидыНалогов
ИЗ
(ВЫБРАТЬ
"ПФРНакопительная" КАК ВидНалога
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ПФРСтраховая"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ФСС"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ФФОМС"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"ТФОМС") КАК ПереченьНалогов
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СтраховыеВзносыИсчисленные.ФизЛицо,
СтраховыеВзносыИсчисленные.Организация,
ВТ_ВидыНалогов.ВидНалога,
ВЫБОР
КОГДА ВТ_ВидыНалогов.ВидНалога = "ПФРНакопительная"
ТОГДА СтраховыеВзносыИсчисленные.ПФРНакопительная
КОГДА ВТ_ВидыНалогов.ВидНалога = "ПФРСтраховая"
ТОГДА СтраховыеВзносыИсчисленные.ПФРСтраховая
КОГДА ВТ_ВидыНалогов.ВидНалога = "ФСС"
ТОГДА СтраховыеВзносыИсчисленные.ФСС
КОГДА ВТ_ВидыНалогов.ВидНалога = "ФФОМС"
ТОГДА СтраховыеВзносыИсчисленные.ФФОМС
КОГДА ВТ_ВидыНалогов.ВидНалога = "ТФОМС"
ТОГДА СтраховыеВзносыИсчисленные.ТФОМС
КОНЕЦ КАК Сумма
ИЗ
ВТ_ВидыНалогов КАК ВТ_ВидыНалогов
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СтраховыеВзносыИсчисленные КАК СтраховыеВзносыИсчисленные
ПО (ВТ_ВидыНалогов.ВидНалога = "ПФРНакопительная"
И СтраховыеВзносыИсчисленные.ПФРНакопительная <> 0
ИЛИ ВТ_ВидыНалогов.ВидНалога = "ПФРСтраховая"
И СтраховыеВзносыИсчисленные.ПФРСтраховая <> 0
ИЛИ ВТ_ВидыНалогов.ВидНалога = "ФСС"
И СтраховыеВзносыИсчисленные.ФСС <> 0
ИЛИ ВТ_ВидыНалогов.ВидНалога = "ФФОМС"
И СтраховыеВзносыИсчисленные.ФФОМС <> 0
ИЛИ ВТ_ВидыНалогов.ВидНалога = "ТФОМС"
И СтраховыеВзносыИсчисленные.ТФОМС <> 0)
Добавить комментарий