|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 21 Jul 2000 22:05:42 To : rychkov@rubtsovsk.ru Subject : Re: Промежуточные итоги в цикле -------------------------------------------------------------------------------- rrr> Столкнулся с такой проблемкой, при выводе из INFORMIX SQL запроса rrr> потребовалось подбивать промежуточные итоги. При испольовании rrr> стандартного while это достаточно криво организуется. rrr> $sth->execute() or die "execute error\n"; rrr> while(@ex = $sth->fetchrow()){ # Цикл построчного формирования отчета rrr> printf("%s %s %s",$ex[0],$ex[1],$ex[2],$ex[3]); rrr> # Подсчет общих итогов по таблице rrr> $cost_r =$cost_r + $ex[1]; rrr> $cost_d =$cost_d + $ex[2]; rrr> } # Конец цикла по строкам таблицы rrr> Как организовать цикл вывода результатов запроса, чтобы иметь возможность rrr> контролировать изменение значения некого параметра запроса $ex[0] и rrr> выводить результаты суммирования по $ex[0]? SQL запрос выдает уже rrr> отсортированный по нужному реквизиту вывод. rrr> Hужно получить: rrr> 1. Арбуз 2 шт 5 кг rrr> 1. Дыня 2 шт 10 кг rrr> 1. Тыква 1 шт 5 кг rrr> Итого по 1: 5 шт 20 кг rrr> 2. Слива 2 шт 5 кг rrr> 2. Персик 2 шт 10 кг rrr> 2. 1 шт 5 кг rrr> Итого по 2: 5 шт 20 кг rrr> 3. Арбуз 2 шт 5 кг rrr> 3. Дыня 2 шт 10 кг rrr> 3. Тыква 1 шт 5 кг rrr> Итого по 1: 5 шт 20 кг rrr> Подскажите. Любителей отсылать к документации и SPAN просьба не rrr> беспокоиться. А к детской книжке по основам программирования можно? my $ex0; my ($cost_r,$cost_d) = (0,0); while (...) { if (defined $ex0 and $ex0 ne $ex[0]) { printf "Итого по $ex0: $cost_r шт. $cost_d кг\n"; $cost_r = $cost_d = 0; $ex0 = $ex[0]; } printf ... $cost_r += $ex[2]; $cost_d += $ex[3]; } printf "Итого по $ex0: $cost_r шт. $cost_d кг\n" if defined $ex0; -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/34730de58769.html, оценка из 5, голосов 10
|