/// <summary>
        /// Creates a list of event-table-columns, i.e. "EVENT.event_id", "Event.case_id", ...
        /// </summary>
        /// <param name="withAggregation">Whether an aggregation on the event-table was selected</param>
        /// <returns>A list of strings that can be used for the select statement</returns>
        /// <author>Jannik Arndt, Roman Bauer</author>
        private IEnumerable<string> CreateEventSelectStatements(bool withAggregation)
        {
            List<string> result = new List<string>();

            //aggregation selected --> build select clause with database functions because we will use group by clause
            if (withAggregation)
            {
                AbstractAggregationConfigurator aggConfigurator = new DefaultAggregationConfigurator();

                foreach (string columnName in DBWorker.MetaData.ListOfEventsTableColumnNames)
                {
                    string aggFunction = aggConfigurator.GetAggregationFunction(columnName);
                    string projectionOnAttribute = aggFunction + "(" + TableColumnFormatter(EventTableName, columnName) + ")" + columnName;
                    result.Add(projectionOnAttribute);
                }
            }
            //no aggregation selected --> build select clause in absence of group by clause
            else
                foreach (string columnName in DBWorker.MetaData.ListOfEventsTableColumnNames)
                    result.Add(TableColumnFormatter(EventTableName, columnName));

            return result;
        }