my $headers = {
locations => ['USA', 'UK'],
departments => ['pers', 'dev','sales'],
gender => ['m', 'f']
};
__END__
The ultimate goal will be
USA UK
+
---------------------------------- ---------------------------------
pers dev sales USA pers dev sales UK
-------- ------- --------- ------- -------- ------- --------- ------
m f pers m f dev m f sales m f USA m f pers m f dev m f sales m f UK
- - --- - - --- - - ----- - - --- - - ---- - - --- - - ----- - - --
a b c d e f g h i j k l m n o p q r s t u v w x
Take this schema, and see why I said that order is important and I take the variation only when the last one is changing.
For every location I list the departments; for each department a breakdown by gender (columns a b d e n o p q s t), followed by a department total (columns c f i o r u). Then there is a breakdown by location (columns g h v w) with its grand total (columns l x).
If I permute 'USA'-'m' before 'USA'-'pers'-'m' I am breaking the schema.
The algorithm I am dealing with is a little more complex than this, since it is taking information about where to find each item, and generating code to retrieve the relevant data from a database.
The permutations are needed to create the appropriate conditions for retrieving each column of data. All the conditions are merged together into a giant SQL statement that will fetch the data according to my instructions (SUM, COUNT, AVG).
More on this subject when I adjust nicely all the above into a module. :)
_ _ _ _
(_|| | |(_|><
_|
|