|
v8: Реализовать счетчик строк в запросе. | ☑ | ||
---|---|---|---|---|
0
BujiMuji
03.11.12
✎
11:37
|
привет всем!!!
как можно в запросе накоплять переменный на пример пер = пер + 1 |
|||
1
zak555
03.11.12
✎
11:38
|
что такое "помагите" и "накоплять" ?
|
|||
2
zak555
03.11.12
✎
11:38
|
что такое пер ?
|
|||
3
H A D G E H O G s
03.11.12
✎
11:39
|
никак
|
|||
4
BujiMuji
03.11.12
✎
11:40
|
Запрос = Новый Запрос;
ТекстЗапроса = " |ВЫБРАТЬ | Пер = Пер + Рег.Минут |ИЗ | РегистрНакопления.ВременнаяТаблица КАК Рег |"; Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); |
|||
5
Отладчик
03.11.12
✎
11:40
|
(0) Советую реорганизовать подход к задаче изначально.
|
|||
6
zak555
03.11.12
✎
11:41
|
нарастающий итог ?
|
|||
7
BujiMuji
03.11.12
✎
11:41
|
zak555
это как? |
|||
8
Отладчик
03.11.12
✎
11:42
|
(7) Щас Денисч придет
|
|||
9
Отладчик
03.11.12
✎
11:42
|
Хотя теперь уже не придет )))
|
|||
10
zak555
03.11.12
✎
11:43
|
(7) например
v8: нарастающий итог для регистра накопления |
|||
12
Фокусник
03.11.12
✎
11:44
|
(4) Может группировка или итоги помогут? :)
|
|||
13
zak555
03.11.12
✎
11:45
|
заголовок "Реализовать счетчик строк в запросе" не соответствует (4)
|
|||
14
Живой Ископаемый
03.11.12
✎
11:52
|
просто добавить какоето значение к ресурсу?
|
|||
15
BujiMuji
03.11.12
✎
12:03
|
Живой Ископаемый
куда добавить? |
|||
16
Живой Ископаемый
03.11.12
✎
12:04
|
да, куда хочешь добавить? в запросе в каком-то поле?
|
|||
17
BujiMuji
03.11.12
✎
12:06
|
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Пер",Пер); ТекстЗапроса = " |ВЫБРАТЬ | Пер = Пер + 1 |ИЗ | РегистрНакопления.ВременнаяТаблица"; Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); так? |
|||
18
H A D G E H O G s
03.11.12
✎
12:07
|
нет
|
|||
19
H A D G E H O G s
03.11.12
✎
12:07
|
Зачем?
|
|||
20
H A D G E H O G s
03.11.12
✎
12:07
|
Можно так, но только результат будет в выборке
|
|||
21
H A D G E H O G s
03.11.12
✎
12:07
|
ТекстЗапроса = "
|ВЫБРАТЬ | Сумма(1) |ИЗ | РегистрНакопления.ВременнаяТаблица"; |
|||
22
Живой Ископаемый
03.11.12
✎
12:07
|
2(17) выплюнь жвачку изо рта и расскажи что хочешь получить в результате
|
|||
23
BujiMuji
03.11.12
✎
12:10
|
как можно прекрипить фото я вам покажу что мне надо
|
|||
24
Живой Ископаемый
03.11.12
✎
12:13
|
там сиськи будут?
Если не будут, то не надо фото. нужен скриншот, его заливаешь на ЛЮБОЙ ИЗ БОЛЕЕ ЧЕМ ДО.УЯ бесплатных файлохостинг (можешь даже на свой любимый) и кидаешь сюда СССЫЛКУ |
|||
25
H A D G E H O G s
03.11.12
✎
12:14
|
(24) Спорим, это будет webfile или ifolder?
|
|||
26
Живой Ископаемый
03.11.12
✎
12:15
|
(25) а вдруг одноклассники?
|
|||
27
BujiMuji
03.11.12
✎
12:16
|
у меня есть таблица
[URL=http://img.uz/][IMG]http://img.uz/d/2012/11/5094d2cf24e14.png[/IMG][/URL] |
|||
28
BujiMuji
03.11.12
✎
12:17
|
||||
29
Отладчик
03.11.12
✎
12:17
|
У меня тоже есть таблица!
|
|||
30
Живой Ископаемый
03.11.12
✎
12:19
|
2(27) все, переносить тему в раздел "Лайф. Как страшно жить"?
|
|||
31
Отладчик
03.11.12
✎
12:19
|
Бедняги вы, с этими сраными УФ ( Плачете, но продолжаете жрать кактусы. Не в ту сторону мозги то направляете свои!
|
|||
32
Живой Ископаемый
03.11.12
✎
12:20
|
2(31) кому нужно твое мнение?
|
|||
33
BujiMuji
03.11.12
✎
12:20
|
||||
34
Живой Ископаемый
03.11.12
✎
12:20
|
блин, забыл слово сраное...
|
|||
35
rphosts
03.11.12
✎
12:21
|
(31) а причём тут УФ? Чел хочет чего-то там решить силами одного запроса. Почему-бы и нет?
|
|||
36
BujiMuji
03.11.12
✎
12:22
|
02.10.2012 12:00:00 2341242 1 5,4 1
02.10.2012 12:00:00 2341242 3 16,2 4 02.10.2012 12:00:00 2341242 1 6 5 02.10.2012 12:00:00 2341242 4 24 9 02.10.2012 12:00:00 2341242 14 84 23 02.10.2012 12:00:00 2341242 10 60 33 02.10.2012 12:00:00 2341242 2 12 35 02.10.2012 12:00:00 2341242 47 282 82 02.10.2012 12:00:00 2341242 1 6 83 02.10.2012 12:00:00 2341242 6 36 89 02.10.2012 12:00:00 2341242 1 6 90 02.10.2012 12:00:00 2341242 47 282 137 02.10.2012 12:00:00 2341242 1 6 138 02.10.2012 12:00:00 2341242 2 12 140 02.10.2012 12:00:00 2341242 1 6 141 02.10.2012 12:00:00 2341242 1 6 142 02.10.2012 12:00:00 2341242 1 6 143 02.10.2012 12:00:00 2341242 1 6 144 02.10.2012 12:00:00 2341242 2 12 146 02.10.2012 12:00:00 2341242 12 72 158 02.10.2012 12:00:00 2341242 4 24 162 02.10.2012 12:00:00 2341242 1 6 163 02.10.2012 12:00:00 2341242 1 6 164 02.10.2012 12:00:00 2341242 1 6 165 02.10.2012 12:00:00 2341242 16 96 181 02.10.2012 12:00:00 2341242 8 48 02.10.2012 12:00:00 2341242 6 32,4 195 1164,00 86,4 |
|||
37
Живой Ископаемый
03.11.12
✎
12:22
|
2(35) у него УФ-травма. видит УФ- вспоминает как ему было больно, хочет начать плакать, но он же мужик, поэтому ругается...
|
|||
38
Jstunner
03.11.12
✎
12:22
|
Ребус разгадываем?
|
|||
39
BujiMuji
03.11.12
✎
12:22
|
мне нужен сумма минут > 180
и сверх лимит надо расчитать суммы |
|||
40
Живой Ископаемый
03.11.12
✎
12:24
|
что такое сверх лимит?
|
|||
41
BujiMuji
03.11.12
✎
12:25
|
СУММА(Минут) > 180
|
|||
42
Живой Ископаемый
03.11.12
✎
12:25
|
ок, я понял, 10 минут
|
|||
43
H A D G E H O G s
модератор
03.11.12
✎
12:31
|
Отладчик - вы какой-то весь из себя экспрессивный сегодня. Прошу, умерьте пыл.
|
|||
44
BujiMuji
03.11.12
✎
12:33
|
вот мой код
Процедура ОбработкаПроведения(Отказ, Режим) Движения.ДвижениеФизЛицо.Записывать = Истина; Движения.ДвижениеЮрЛицо.Записывать = Истина; Сообщить(ТекущаяДата()); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата1", НачалоМесяца(Дата)); Запрос.УстановитьПараметр("Дата2", КонецМесяца(Дата)); Запрос.УстановитьПараметр("Шкала", Константы.ШкалаПВУ.Получить()); ТекстЗапроса = " |ВЫБРАТЬ | Итог.АбонентА КАК АбонентА | ,СУММА(Итог.Минут) КАК Минут |ИЗ |(ВЫБРАТЬ | Время | , АбонентА | , Минут |ИЗ | РегистрНакопления.УстановкаСчетчик |ГДЕ | Тип <> ""Интернет"" | И Период МЕЖДУ &Дата1 И &Дата2 | И АбонентА.Статус = 0) КАК Итог |СГРУППИРОВАТЬ ПО | АбонентА |ИМЕЮЩИЕ | СУММА(Минут)>&Шкала"; Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл //Если Выборка.АбонентА.Ссылка.Статус <> "1" Тогда Если Выборка.АбонентА.Ссылка.Тип.Ссылка.Код="05" Тогда Движение = Движения.ДвижениеФизЛицо.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.НомерАбонента = Выборка.АбонентА.Ссылка; Движение.Счетчик = Проверка(Выборка.АбонентА.Ссылка,Дата); Иначе Движение = Движения.ДвижениеЮрЛицо.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.ЛС = Выборка.АбонентА.Ссылка.ЛС.Ссылка; Движение.НомерАбонента = Выборка.АбонентА.Ссылка; Движение.Счетчик = Проверка(Выборка.АбонентА.Ссылка,Дата); КонецЕсли; //КонецЕсли; КонецЦикла; Сообщить(ТекущаяДата()); Таксафон(Дата); КонецПроцедуры &НаСервере Процедура Таксафон(Дата) Движения.ДвижениеФизЛицо.Записывать = Истина; Движения.ДвижениеЮрЛицо.Записывать = Истина; Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата1", НачалоМесяца(Дата)); Запрос.УстановитьПараметр("Дата2", КонецМесяца(Дата)); ТекстЗапроса = " |ВЫБРАТЬ | Итог.АбонентА КАК АбонентА | ,СУММА(Итог.Минут) КАК Минут | ,СУММА(Итог.Сумма) КАК Сумма |ИЗ |(ВЫБРАТЬ | Время | , АбонентА | , Минут | , Сумма | , Тип |ИЗ | РегистрНакопления.УстановкаСчетчик |ГДЕ | Период МЕЖДУ &Дата1 И &Дата2 И | Тип ПОДОБНО ""Интернет"") Итог |СГРУППИРОВАТЬ ПО | Итог.АбонентА"; Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий()>0 И Выборка.АбонентА.Ссылка.Статус =0 Цикл //Если Выборка.АбонентА.Ссылка.Тип.Ссылка.Код <> "05" Тогда Движение = Движения.ДвижениеЮрЛицо.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.ЛС = Выборка.АбонентА.Ссылка.ЛС.Ссылка; Движение.НомерАбонента = Выборка.АбонентА.Ссылка; Движение.Таксафон = Выборка.Сумма; //КонецЕсли; КонецЦикла; КонецПроцедуры &НаСервере Функция Проверка(НомерАбонента,Дата) Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата1",НачалоМесяца(Дата)); Запрос.УстановитьПараметр("Дата2",КонецМесяца(Дата)); Запрос.УстановитьПараметр("НомерАбонента",НомерАбонента); ТекстЗапроса = " |ВЫБРАТЬ | Период, | АбонентА | , Минут | , Сумма |ИЗ | РегистрНакопления.УстановкаСчетчик |ГДЕ | АбонентА = &НомерАбонента И | Сумма <> 0 И | Период МЕЖДУ &Дата1 И &Дата2"; Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Тамом = Ложь; ОбщиеМинут = 0; ОбщиеСумма = 0; СальдоДеньги = 0; Пром1 = 0; Если Выборка.Количество()>0 Тогда Пока Выборка.Следующий() Цикл ОбщиеМинут = ОбщиеМинут +Выборка.Минут; Если Тамом = Истина Тогда ОбщиеСумма = ОбщиеСумма + Выборка.Сумма; КонецЕсли; Если ОбщиеМинут > Константы.ШкалаПВУ.Получить() И Тамом = Ложь Тогда СальдоМинут = ОбщиеМинут - Константы.ШкалаПВУ.Получить(); Пром1 = Выборка.Сумма / Выборка.Минут; СальдоДеньги = СальдоМинут * Пром1; Тамом = Истина; КонецЕсли; КонецЦикла; Возврат ОбщиеСумма + СальдоДеньги; Иначе Возврат 0; КонецЕсли; КонецФункции Процедура ПередУдалением(Отказ) Если Константы.ДатаЗапрета.Получить() > Дата И ИмяПользователя() <> "Администратор" Тогда Отказ=Истина; КонецЕсли; КонецПроцедуры Процедура ОбработкаУдаленияПроведения(Отказ) Если Константы.ДатаЗапрета.Получить() > Дата И ИмяПользователя() <> "Администратор" Тогда Отказ=Истина; КонецЕсли; КонецПроцедуры но на это уйдёт 13 час мне нужен расчитать максимум 4 мин |
|||
45
H A D G E H O G s
03.11.12
✎
12:38
|
Хороший такой образчик, классический.
|
|||
46
rphosts
03.11.12
✎
12:38
|
выполнять вызов функции Проверка() в циткле разбора первого запроса - моветон!
нужно доработать запрос из ОбработкаПроведения( )т.о. что-бы он отбирал всё что нужно сразу - получишь офигенный профит по скорости! |
|||
47
zak555
03.11.12
✎
12:39
|
| Тип <> ""Интернет""
| И Период МЕЖДУ &Дата1 И &Дата2 | И АбонентА.Статус = 0) КАК Итог параметры виртуальной таблицы не катят ? |
|||
48
Живой Ископаемый
03.11.12
✎
12:42
|
ВЫБРАТЬ
78225 КАК НомерСтроки, 2341242 КАК АбонентА, 2390716 КАК АбонентБ, 89 КАК Минут ПОМЕСТИТЬ Звонки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 88475, 2341242, 4569865, 92 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 15457, 9999999, 8888888, 178 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 23498, 8888888, 9999999, 182 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.АбонентА, ВложенныйЗапрос.Минут - 180 КАК МинутСверхЛимита ИЗ (ВЫБРАТЬ Звонки.АбонентА КАК АбонентА, СУММА(Звонки.Минут) КАК Минут ИЗ Звонки КАК Звонки СГРУППИРОВАТЬ ПО Звонки.АбонентА) КАК ВложенныйЗапрос ГДЕ ВложенныйЗапрос.Минут > &ЛимитМинут http://screencast.com/t/hw0b5SKYSOV |
|||
49
zak555
03.11.12
✎
12:43
|
наверное так : http://screencast.com/t/hw0b5SKYSOV
|
|||
50
Живой Ископаемый
03.11.12
✎
12:43
|
ссылка на скриншот
http://screencast.com/t/hw0b5SKYSOV |
|||
51
BujiMuji
03.11.12
✎
12:59
|
zak555
как можно опредилить на каком позиции перевыщается 180 |
|||
52
zak555
03.11.12
✎
13:04
|
Живой Ископаемый а так чем хуже ?
ВЫБРАТЬ Звонки.АбонентА КАК АбонентА, СУММА(Звонки.Минут) - 180 КАК Минут ИЗ Звонки КАК Звонки СГРУППИРОВАТЬ ПО Звонки.АбонентА ИМЕЮЩИЕ СУММА(Звонки.Минут) > &ЛимитМинут |
|||
53
Живой Ископаемый
03.11.12
✎
13:06
|
если дают тот же результат без замеления то ничем.. кстати и у меня и у тебя порнуха
СУММА(Звонки.Минут) - 180 КАК Минут наверное надо СУММА(Звонки.Минут) - &ЛимитМинут КАК Минут |
|||
54
zak555
03.11.12
✎
13:08
|
я к тому, что зачем использовать вложенный запрос, если есть ИМЕЮЩИЕ ?
|
|||
55
Живой Ископаемый
03.11.12
✎
13:09
|
2(54) например затем что я старенький и у меня уже склероз, и мой мозг считает энергетически затратным поминить и про вложенный запрос и про ИМЕЮЩИЕ...
нормальное объяснение? |
|||
56
BujiMuji
03.11.12
✎
13:15
|
||||
57
BujiMuji
03.11.12
✎
13:17
|
||||
58
zak555
03.11.12
✎
13:22
|
ВЫБРАТЬ
Звонки.АбонентА КАК АбонентА, СУММА(Звонки.Минут) - &ЛимитМинут КАК МинутСверхЛимита ИЗ Звонки КАК Звонки СГРУППИРОВАТЬ ПО Звонки.АбонентА ИМЕЮЩИЕ СУММА(Звонки.Минут) > &ЛимитМинут |
|||
59
BujiMuji
03.11.12
✎
13:31
|
zak555 я понял но ваш запрос мне даст только
какой (абонент > 180 мин) - 180 но на каком минуте > 180 |
|||
60
BujiMuji
03.11.12
✎
13:32
|
мне надо
|
|||
61
Живой Ископаемый
03.11.12
✎
14:13
|
на 181-м минуте абонент > 180 минут. :) это совсем просто.
|
|||
62
BujiMuji
03.11.12
✎
14:48
|
всё Огромное спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |