Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Результат запроса одной строкой
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
cocon2003
Здравствуйте.
В 1С с запросами слаб пока однако есть надежда, что решить можно проще.
Есть таблица типа Дата|Показатель|Количество.
Нужно запросом получить такой табличный вид:
Показатель|Количество за сегодня|Количество за месяц (итого)
Пока делал в 2 запроса и объединял в результате 2 строки на каждый показатель, а если сегодня показателя нет, то 1 строка с итогом за месяц а за сегодня естественно строки в результате нет
Работал FireBird - там через подзапрос собиралось итоговое количество. Подозреваю, что тут тоже можно, но синтаксис не складывается в голове.
Направьте пожалуйста.
sava1
Выбрать сумма(а),сумма(б).....
из
(выбрать...
объединить все
выбрать)
или
сгруппировать ....

cocon2003
Цитата(sava1 @ 10.06.15, 8:05) необходимо зарегистрироваться для просмотра ссылки
Выбрать сумма(а),сумма(б).....
из
(выбрать...
объединить все
выбрать)
или
сгруппировать ....


А можно с использованием моих полей? А то русский оператор "выбрать" с рекомендуемым действием "выбрать" меня в ступор вводит.
Что значит А и Б если это одно и то же поле в базе?
sava1
Как различаются Количество за сегодня и к-во за месяц?
Неужели так ломает от Выбрать?
Petre
А может правильнее так:
Цитата
Делаю такой запрос: <текст запроса>
получаю такую выборку: <скриншот>
Как сделать чтобы получилось такое: <скриншот>

?
sava1
типо так -
ВЫбрать Сумма(КвоСегодня),Сумма(КвоМесяц)
ИЗ (
Выбрать Сумма(Количество) КвоСегодня, 0 КвоМесяц
ИЗ Таб
ГДЕ Дата Между Дата1 и Дата2
UNION ALL
Выбрать 0, Сумма(Количество)
ИЗ Таб
ГДЕ Дата Между Дата3 и Дата4
) тт
cocon2003
Цитата(sava1 @ 10.06.15, 9:46) необходимо зарегистрироваться для просмотра ссылки


Спасибо, доберусь до рабочего места буду пробовать.

Цитата(sava1 @ 10.06.15, 9:46) необходимо зарегистрироваться для просмотра ссылки
типо так -
ВЫбрать Сумма(КвоСегодня),Сумма(КвоМесяц)
ИЗ (
Выбрать Сумма(Количество) КвоСегодня, 0 КвоМесяц
ИЗ Таб
ГДЕ Дата Между Дата1 и Дата2
UNION ALL
Выбрать 0, Сумма(Количество)
ИЗ Таб
ГДЕ Дата Между Дата3 и Дата4
) тт


Да Вы просто читаете мысли - мне не хватало именно понимания, что я могу из выбранных запросов верхним запросом склеить всё в общую кучу.
На всякий случай мой рабочий вариант прилагается.
Если найдётся, что в нём пооптимизировать, дубу рад.
ВЫБРАТЬ
        ТаблицаРезультат.КонтрагентаТип КАК КонтрагентаТип,
        ТаблицаРезультат.Реализатор КАК Реализатор,
        СУММА(ТаблицаРезультат.ВесНеттоДень) КАК ВесНеттоДень,
        СУММА(ТаблицаРезультат.СуммаСНДСДень) КАК СуммаСНДСДень,
        СУММА(ТаблицаРезультат.ВесНеттоМесяц) КАК ВесНеттоМесяц,
        СУММА(ТаблицаРезультат.СуммаСНДСМесяц) КАК СуммаСНДСМесяц
ИЗ
(ВЫБРАТЬ
        Реализация.Контрагент.КонтрагентаТип КАК КонтрагентаТип,
        Реализация.Реализатор КАК Реализатор,
        0 КАК ВесНеттоДень,
        0 КАК СуммаСНДСДень,
        СУММА(Реализация.ВесНетто) КАК ВесНеттоМесяц,
        СУММА(Реализация.СуммаСНДС) КАК СуммаСНДСМесяц
    ИЗ
        Документ.Реализация КАК Реализация
    ГДЕ
        Реализация.Дата МЕЖДУ НачалоПериода(&Дата, Месяц) И КонецПериода(&Дата, Месяц)
        И Реализация.Подразделение = &Подразделение
    
    СГРУППИРОВАТЬ ПО
        Реализация.Контрагент.КонтрагентаТип,
        Реализация.Реализатор
    ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
        Реализация.Контрагент.КонтрагентаТип КАК КонтрагентаТип,
        Реализация.Реализатор КАК Реализатор,
        СУММА(Реализация.ВесНетто) КАК ВесНетто,
        СУММА(Реализация.СуммаСНДС) КАК СуммаСНДС,
        0 КАК ВесНеттоМесяц,
        0 КАК СуммаСНДСМесяц
    ИЗ
        Документ.Реализация КАК Реализация
    ГДЕ
        Реализация.Дата МЕЖДУ НачалоПериода(&Дата, День) И КонецПериода(&Дата, День)
        И Реализация.Подразделение = &Подразделение
    
    СГРУППИРОВАТЬ ПО
        Реализация.Контрагент.КонтрагентаТип,
        Реализация.Реализатор) ТаблицаРезультат
    СГРУППИРОВАТЬ ПО
        ТаблицаРезультат.КонтрагентаТип,
        ТаблицаРезультат.Реализатор


Цитата(Petre @ 10.06.15, 9:30) необходимо зарегистрироваться для просмотра ссылки
А может правильнее так:

?


Спасибо за попытку, но телепат меня уже нашёл, совет пригодился ;-)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.