private Select GetSelectWithAggregationColumnsConditions(Select select, string[] aggregationColumns, string detailNameAlias) { foreach (string columnName in aggregationColumns) { QueryCondition condition = select.AddCondition(LogicalOperation.And); condition .OpenBlock(select.SourceExpression.Alias, columnName) .IsEqual(detailNameAlias, columnName) .Or() .OpenBlock(select.SourceExpression.Alias, columnName) .IsNull() .And(detailNameAlias, columnName).IsNull() .CloseBlock() .CloseBlock(); } return(select); }