|
v7: подскажите с запросом на 77 | ☑ | ||
---|---|---|---|---|
0
DmitriyDI
11.06.14
✎
09:52
|
переделываю отчет, там достаточно сложные расчеты, вообщем 4000 строк, и как-то не хочется все это переписывать и было бы идеально поменять в запросе это все дело просто напросто и сделать так:
Есть признак у статьи, он равняется 1 или 2, вот если он 1, тогда брать сумму выборки между ДатаНач и ДатаКон, а когда он 2, тогда эту же сумму между ДатаНач1 и ДатаКон2. можно так на семерочке сделать? |
|||
1
Ёпрст
11.06.14
✎
09:54
|
Разрешаю, делай
|
|||
2
DmitriyDI
11.06.14
✎
09:56
|
(1) просто не очень понимаю, как это сделать?
|
|||
3
DCKiller
11.06.14
✎
09:56
|
Покажи текст запроса. Хоть посмотреть, что там за сложные расчеты в нем такие...
|
|||
4
Ёпрст
11.06.14
✎
09:57
|
у функции в запросе есть Когда().. туда запихать условие на дату. Усё.
|
|||
5
acanta
11.06.14
✎
09:57
|
В шапке запроса максимальный период, остальное в
Сумма () когда |
|||
6
DmitriyDI
11.06.14
✎
09:57
|
(3) там расчеты все идут дальше сложные, запрос достаточно легкий, берет движения по регистру в разрезе нескольких группировок.
|
|||
7
DmitriyDI
11.06.14
✎
09:59
|
(4) (5) да я так делаю
|Функция СуммаСумма =Расход(Сумма) когда ((Статья.МетодРасчета = 2) и ((ДатаП>=ДатаНач )и(ДатаП<=ДатаКон))); |Функция СуммаСумма =Расход(Сумма) когда ((Статья.МетодРасчета = 1) и ((ДатаП>=ДатаНач1)и(ДатаП<=ДатаКон1))); совсем не понимаю как это связать! |
|||
8
DCKiller
11.06.14
✎
10:00
|
(7) ДатаП - это переменная запроса?
|
|||
9
DmitriyDI
11.06.14
✎
10:00
|
(8) да
|
|||
10
DCKiller
11.06.14
✎
10:01
|
(9) А что не работает?
|
|||
11
DmitriyDI
11.06.14
✎
10:19
|
ругается что использовал переменную более одного раза
|
|||
12
DmitriyDI
11.06.14
✎
10:22
|
а не получится если я сделаю так:
|Условие ((Статья.МетодРасчета = 2) и ((ДатаП>=ДатаНач )и(ДатаП<=ДатаКон))); |Условие ((Статья.МетодРасчета = 1) и ((ДатаП>=ДатаНач1)и(ДатаП<=ДатаКон1))); просто два условия воткну и все |
|||
13
vtolga
11.06.14
✎
10:25
|
СуммаСумма и СуммаСумма1 хотя бы сделай :)
|
|||
14
DmitriyDI
11.06.14
✎
10:26
|
(13) вот именно я и хочу уйти от разделения этой переменной
|
|||
15
vtolga
11.06.14
✎
10:26
|
Ты в одну переменную 2 значения запихнуть пытаешься
|
|||
16
DCKiller
11.06.14
✎
10:27
|
(14) И как ты себе это представляешь? Как, по-твоему, будет выглядеть результат?
|
|||
17
DCKiller
11.06.14
✎
10:30
|
Ну, а если вот так:
Функция СуммаСумма = Расход(Сумма) когда (((Статья.МетодРасчета = 1) и ((ДатаП>=ДатаНач1)и(ДатаП<=ДатаКон1))) ИЛИ (((Статья.МетодРасчета = 2) и ((ДатаП>=ДатаНач )и(ДатаП<=ДатаКон)))); ? |
|||
18
vtolga
11.06.14
✎
10:31
|
как -то так, наверное
Функция КоличествоСумма = Сумма(?Штучный=1,Количество*Товар.ВесштукиКг,Количество)); |
|||
19
vtolga
11.06.14
✎
10:31
|
это работало
|
|||
20
vtolga
11.06.14
✎
10:32
|
Скобку пропустила
Функция КоличествоСумма = Сумма(?(Штучный=1,Количество*Товар.ВесштукиКг,Количество)); |
|||
21
DmitriyDI
11.06.14
✎
10:32
|
(16) в 8ке вот так
ВЫБРАТЬ ДвиженияТоваровОбороты.Товар, ДвиженияТоваровОбороты.СуммаОборот ИЗ РегистрНакопления.ДвиженияТоваров.Обороты(&НачПериода, &КонПериода, Запись,) КАК ДвиженияТоваровОбороты ГДЕ ВЫБОР КОГДА ДвиженияТоваровОбороты.Товар.МетодРасчета = 1 ТОГДА ДвиженияТоваровОбороты.Период МЕЖДУ &НачДата1 И &НачДата2 ИНАЧЕ ДвиженияТоваровОбороты.Период МЕЖДУ &НачДата3 И &НачДата3 КОНЕЦ |
|||
22
DmitriyDI
11.06.14
✎
10:33
|
(17) сейчас попробую
|
|||
23
DmitriyDI
11.06.14
✎
10:45
|
(17) блин, при Статья.МетодРасчета = 2 он берет значения за 2 месяца
|
|||
24
DmitriyDI
11.06.14
✎
10:45
|
(23) точнее за два периода без разделения
|
|||
25
DmitriyDI
11.06.14
✎
10:51
|
(17) Вру!!!! Вру!!!! Все заработало, спасибо большое))))!!!!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |