parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Построение сводных таблиц

R. Averkov 04.02.2006 11:19 / 04.02.2006 11:22

Задача
Построить таблицу: строки — сотрудники, столбцы — месяцы, на пересечении — зарплата сотрудника за месяц. (Сотрудники, зарплаты, месяц — абстракция, на их месте может быть каждый :)

Такую задачу я решал раньше следующим образом:
^for[employee_i](1;$employee_list){

	<employee ord="$employee_i">
	
		$salary[^hash::sql{
			SELECT month, salary
			...
			WHERE
			year=2005 AND employee_ord=$employee_i
		}]
		
		^for[month_i](1;12){

			<month no="$month_i"
			salary="$salary.[$month_i].salary"/>

		}
	
	</employee>
}
А теперь так:
$salary[^hash::sql{
	SELECT CONCAT(month,'_',employee_ord), salary
	...
	WHERE
	year=2005
}]

^for[employee_i](1;$employee_list){
	
	<employee ord="$employee_i">
	
	^for[month_i](1;12){

		<month no="$month_i"
		salary="$salary.[${month_i}_${employee_i}].salary"/>

	}
	
	</employee>
}
Есть ли более хорошие решения для подобных задач?