/// <summary> /// 获取最后一条记录 /// </summary> /// <param name="kpi"></param> public Kpi GetLastSingle(Kpi kpi) { var sqlWhere = $" UserId={kpi.UserId} and ModuleId='{kpi.ModuleId}' and Type={Convert.ToInt16(kpi.Type)}"; var timeTypeCondition = DataRecordExtension.GetTimeTypeCondition(kpi.Type, kpi.CreateTime); if (!timeTypeCondition.IsNullOrEmpty()) { sqlWhere += $" And {timeTypeCondition}"; } var sql = $"SELECT top 1 * FROM kpi_kpi WHERE {sqlWhere} order by id desc "; using (var reader = RepositoryContext.ExecuteDataReader(sql)) { Kpi readKpi = null; if (reader.Read()) { readKpi = ReadKpi(reader); } return(readKpi); } }
/// <summary> /// 转换成Sql查询语句,Sql数据库使用Sql查询 /// </summary> /// <returns></returns> public string ToSqlWhere(ReportStyle reportStyle = ReportStyle.Count) { // 以下为示例代码 var sqlWhere = " WHERE 1 = 1 "; if (Field.IsNotNullOrEmpty() && Value.IsNotNullOrEmpty()) { var operatorMark = Operator.GetFieldAttribute().Mark; sqlWhere += $" AND {Field} {operatorMark} '{Value}'"; // 此处需要根据类型做额外的处理 } if (reportStyle == ReportStyle.Count || reportStyle == ReportStyle.Sum || reportStyle == ReportStyle.Avg || reportStyle == ReportStyle.Min || reportStyle == ReportStyle.Max) { // 根据timeType获取条件,获取季度,年度、月份等条件,构建时间查询语句 var timeTypeCondition = DataRecordExtension.GetTimeTypeCondition(TimeType, ReferTime); if (!timeTypeCondition.IsNullOrEmpty()) { sqlWhere += $" And {timeTypeCondition}"; } } return(sqlWhere); }