public Field(SqlRawBuilder sqlRawBuilder, string[] fields, FieldFormatEnum fieldFormatEnum)
        {
            this.sqlRawBuilder = sqlRawBuilder;
            this.fields        = fields;

            string fieldGroupFormat = string.Join(", ", fields.Select(s =>
                                                                      (fieldFormatEnum == FieldFormatEnum.Count) ? string.Format("COUNT({0}) AS {0}", s)
            : (fieldFormatEnum == FieldFormatEnum.Sum) ? string.Format("SUM({0}) AS {0}", s)
            : (fieldFormatEnum == FieldFormatEnum.Avg) ? string.Format("AVG({0}) AS {0}", s)
            : s));

            this.sqlRawBuilder.GetSQL   += (this.sqlRawBuilder.HasSelect ? ", " + fieldGroupFormat : fieldGroupFormat) + " ";
            this.sqlRawBuilder.HasSelect = true;
        }
        public Field(SqlRawBuilder sqlRawBuilder, string field, FieldFormatEnum fieldFormatEnum)
        {
            this.sqlRawBuilder = sqlRawBuilder;
            this.field         = field;

            string fieldFormat =
                (fieldFormatEnum == FieldFormatEnum.Count) ? string.Format("COUNT({0}) AS {0}", field)
                : (fieldFormatEnum == FieldFormatEnum.Sum) ? string.Format("SUM({0}) AS {0}", field)
                : (fieldFormatEnum == FieldFormatEnum.Avg) ? string.Format("AVG({0}) AS {0}", field)
                : (fieldFormatEnum == FieldFormatEnum.Min) ? string.Format("MIN({0}) AS {0}", field)
                : (fieldFormatEnum == FieldFormatEnum.Max) ? string.Format("MAX({0}) AS {0}", field)
                : field;

            this.sqlRawBuilder.GetSQL   += (this.sqlRawBuilder.HasSelect ? ", " + fieldFormat : fieldFormat) + " ";
            this.sqlRawBuilder.HasSelect = true;
        }
 public Field AddField(string field, FieldFormatEnum fieldFormatEnum = FieldFormatEnum.normal)
 {
     return(new Field(sqlRawBuilder, field, fieldFormatEnum));
 }
 public Field AddFieldGroup(string[] fields, FieldFormatEnum fieldFormatEnum = FieldFormatEnum.normal)
 {
     return(new Field(sqlRawBuilder, fields, fieldFormatEnum));
 }