|
Нужно выбрать 5 самых дорогих по стоимости работ | ☑ | ||
---|---|---|---|---|
0
anna_z
17.11.20
✎
20:51
|
Здравствуйте! Есть 2 таблицы: Трудозатраты (ВидРабот, ТипРабот, ЗатраченоЧасов) и Цены (ТипРабот, Цена). Нужно выбрать 5 самых дорогих по стоимости работ (стоимость считается как Цена*ЗатраченоЧасов) и вывести суммарную стоимость. Пишу запрос:
ВЫБРАТЬ ПЕРВЫЕ 5 ТРУДОЗАТРАТЫ.ВидРабот КАК ВидРабот, ЗатраченоЧасов*Цена КАК Стоимость ИЗ ТРУДОЗАТРАТЫ ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦЕНЫ ПО ТРУДОЗАТРАТЫ.ТипРабот = ЦЕНЫ.ТипРабот УПОРЯДОЧИТЬ ПО Стоимость УБЫВ ИТОГИ СУММА(Стоимость) ПО ОБЩИЕ Возвращает только суммарную стоимость. Что я делаю не так? |
|||
1
Михаил Козлов
17.11.20
✎
21:05
|
"Возвращает только суммарную стоимость" в консоли запросов или в приложении? Попробуйте без итогов.
|
|||
2
Ненавижу 1С
гуру
17.11.20
✎
21:05
|
ВЫБРАТЬ ПЕРВЫЕ 5
ТРУДОЗАТРАТЫ.ВидРабот КАК ВидРабот, СУММА(ЗатраченоЧасов*Цена) КАК Стоимость ИЗ ТРУДОЗАТРАТЫ ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦЕНЫ ПО ТРУДОЗАТРАТЫ.ТипРабот = ЦЕНЫ.ТипРабот СГРУППИРОВАТЬ ПО ТРУДОЗАТРАТЫ.ВидРабот УПОРЯДОЧИТЬ ПО Стоимость УБЫВ |
|||
3
novichok79
17.11.20
✎
21:06
|
итоги надо убрать
|
|||
4
anna_z
17.11.20
✎
21:16
|
(1)В приложении. Без итогов выводит стоимость всех работ, но не выводит суммарную стоимость.
(2)Так тоже не считает суммарную стоимость. В принципе, ее можно отдельно посчитать. |
|||
5
novichok79
17.11.20
✎
21:21
|
(4) Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам)?
|
|||
6
Бишбармак
18.11.20
✎
09:37
|
(ООО "На коленке эдишн" представляет. Копилефт)
..... Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 5 | ЦеныРабот.Цена КАК Цена, | ЦеныРабот.Работа КАК Работа |ПОМЕСТИТЬ ВТ_Дорогие |ИЗ | РегистрСведений.ЦеныРабот КАК ЦеныРабот | |УПОРЯДОЧИТЬ ПО | Цена УБЫВ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА(СделкаРаботы.Часы) КАК Часы, | СделкаРаботы.Работа КАК Работа1 |ПОМЕСТИТЬ ВТ_РаботыЧасы |ИЗ | Документ.Сделка.Работы КАК СделкаРаботы |ГДЕ | СделкаРаботы.Работа В | (ВЫБРАТЬ | ВТ_Дорогие.Работа КАК Работа | ИЗ | ВТ_Дорогие КАК ВТ_Дорогие) | |СГРУППИРОВАТЬ ПО | СделкаРаботы.Работа |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Дорогие.Работа КАК Работа, | СУММА(ВТ_РаботыЧасы.Часы * ВТ_Дорогие.Цена) КАК Стоимость |ИЗ | ВТ_Дорогие КАК ВТ_Дорогие | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РаботыЧасы КАК ВТ_РаботыЧасы | ПО ВТ_Дорогие.Работа = ВТ_РаботыЧасы.Работа1 | |СГРУППИРОВАТЬ ПО | ВТ_Дорогие.Работа |ИТОГИ | СУММА(Стоимость) |ПО | ОБЩИЕ, | Работа"; РезультатЗапроса = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьРабота = Макет.ПолучитьОбласть("Работа"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаРабота = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаРабота.Следующий() Цикл ОбластьРабота.Параметры.Заполнить(ВыборкаРабота); ТабДок.Вывести(ОбластьРабота, ВыборкаРабота.Уровень()); ВыборкаРабота=ВыборкаРабота.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаРабота.Следующий() Цикл ОбластьРабота.Параметры.Заполнить(ВыборкаРабота); ТабДок.Вывести(ОбластьРабота, ВыборкаРабота.Уровень()); КонецЦикла; КонецЦикла; |
|||
7
Vadim_37
18.11.20
✎
09:59
|
(6) не попал, выбираешь 5 дорогих по цене, а надо по стоимости
|
|||
8
Бишбармак
18.11.20
✎
10:12
|
(7) Ааа.... гляжу в книгу... там картинки
|
|||
9
Бишбармак
18.11.20
✎
10:14
|
(+8) Тогда в (0)
не хватает ПО ОБЩИЕ, ВидРабот И обход по группировкм |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |