|
ПОмогите упростить запрос |
☑ |
0
Nemirov
28.01.20
✎
11:34
|
Запрос=Новый Запрос();
Запрос.Текст="ВЫБРАТЬ
| РасходнаяНакладнаяСостав.Ссылка КАК ДокументРасходная,
| ПриходнаяНакладнаяСостав.Ссылка КАК ДокументПриходная,
| ПриходнаяНакладнаяСостав.Номенклатура КАК НоменклатураСоставПриход,
//Можно это условие упростить как нибудь? Хотелось бы одним условием Которое ниже.
|РасходнаяНакладнаяСостав.Количество * РасходнаяНакладнаяСостав.Коэффициент - ПриходнаяНакладнаяСостав.Количество * ПриходнаяНакладнаяСостав.Коэффициент КАК Количество,
///////
| ВЫБОР //
| КОГДА РасходнаяНакладнаяСостав.Ссылка.ДокОснование = ПриходнаяНакладнаяСостав.Ссылка
| ТОГДА РасходнаяНакладнаяСостав.Номенклатура = НЕОПРЕДЕЛЕНО
| ИНАЧЕ РасходнаяНакладнаяСостав.Номенклатура
| КОНЕЦ КАК Номенклатура
|ИЗ
| Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав,
| Документ.ПриходнаяНакладная.Состав КАК ПриходнаяНакладнаяСостав
|ГДЕ
| РасходнаяНакладнаяСостав.Номенклатура = ПриходнаяНакладнаяСостав.Номенклатура
| И РасходнаяНакладнаяСостав.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон";
//Запрос.УстановитьПараметр("МоментВремени",ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон));
//Запрос.УстановитьПараметр("Контрагент",Контрагент);
Документы=Запрос.Выполнить().Выгрузить();
ЭлементыФормы.Документы.СоздатьКолонки();
|
|
1
Nemirov
28.01.20
✎
11:34
|
/////Можно это условие упростить как нибудь? Хотелось бы одним условием Которое ниже.
|РасходнаяНакладнаяСостав.Количество * РасходнаяНакладнаяСостав.Коэффициент - ПриходнаяНакладнаяСостав.Количество * ПриходнаяНакладнаяСостав.Коэффициент КАК Количество,
///////
|
|
2
ДенисЧ
28.01.20
✎
11:35
|
А что _тебе_ не нравится в этом запросе?
|
|
3
Nemirov
28.01.20
✎
11:38
|
Да я хочу сделать условие там где количество = 0 не выводить эти строки
|
|
4
Greeen
28.01.20
✎
11:39
|
(0) Нужно логику запроса переписать
Например, сначала отобрать РасходнаяНакладная состав.
Потом соединить приходные накладные по номенклатуре и/или документу основания
|
|
5
Волшебник
модератор
28.01.20
✎
11:40
|
ГДЕ РасходнаяНакладнаяСостав.Количество*К1 = ПриходнаяНакладнаяСостав.Количество*К2
|
|
6
Йохохо
28.01.20
✎
11:49
|
база ляжет на
| Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав,
| Документ.ПриходнаяНакладная.Состав КАК ПриходнаяНакладнаяСостав
а если долетит, то ляжет на
РасходнаяНакладнаяСостав.Ссылка.Дата
"где" будет наложен на результирующую таблицу, которая будет огромна. При проверке такого будет "мы вам не перезвоним"
надо переписать с нуля задачу даже, а не запрос
|
|
7
unregistered
28.01.20
✎
12:00
|
(0) Для начала опишите соединение таблиц-источников и его условия.
А вообще сам запрос - дичь и ересь несусветнейшая. Пригласите специалиста, который ясно и четко сформулирует задачу.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший