α0.0.36をリリースしました。
www.nuget.org
DistinctとAll
enumで指定できるように変更しました。
Select文
[TestMethod] publicvoid Distinct() { var query = Sql<DB>.Create(db => Select(AggregatePredicate.Distinct, new { id = db.tbl_remuneration.staff_id }). From(db.tbl_remuneration)); //文字列化 Debug.Print(query.ToSqlInfo(typeof(SqlConnection)).SqlText); //Dapperを使っているなら、以下のように実行できます var datas = _connection.Query(query).ToList(); }
SELECTDISTINCT tbl_remuneration.staff_id AS id FROM tbl_remuneration
集計関数
[TestMethod] publicvoid GroupByPredicateDistinct() { var query = Sql<DB>.Create(db => Select(new SelectedData() { Name = db.tbl_staff.name, Count = (int)Count(AggregatePredicate.Distinct, db.tbl_remuneration.money), Total = Sum(AggregatePredicate.Distinct, db.tbl_remuneration.money) }). From(db.tbl_remuneration). Join(db.tbl_staff, db.tbl_remuneration.staff_id == db.tbl_staff.id). GroupBy(db.tbl_staff.id, db.tbl_staff.name)); //文字列化 Debug.Print(query.ToSqlInfo(typeof(SqlConnection)).SqlText); //Dapperを使っているなら、以下のように実行できます var datas = _connection.Query(query).ToList(); }
SELECT tbl_staff.name AS Name, COUNT(DISTINCT tbl_remuneration.money) AS Count, SUM(DISTINCT tbl_remuneration.money) AS Total FROM tbl_remuneration JOIN tbl_staff ON (tbl_remuneration.staff_id) = (tbl_staff.id) GROUPBY tbl_staff.id, tbl_staff.name