Пример #1
0
 public void TestSelect_MultipleGroupByItems()
 {
     SelectBuilder builder = new SelectBuilder();
     AliasedSource table = builder.AddTable(new Table("Table"));
     builder.AddProjection(table.Column("Column1"));
     builder.AddProjection(table.Column("Column2"));
     builder.AddProjection(new Function("SUM", table.Column("Column3")));
     builder.AddGroupBy(table.Column("Column1"));
     builder.AddGroupBy(table.Column("Column2"));
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder);
     string expected = "SELECT Table.Column1, Table.Column2, SUM(Table.Column3) FROM Table GROUP BY Table.Column1, Table.Column2";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }
Пример #2
0
 private void buildGroupByList(MatchResult result, SelectBuilder builder)
 {
     MatchResult multiple = result.Matches[SqlGrammar.GroupByList.Multiple.Name];
     if (multiple.IsMatch)
     {
         MatchResult firstResult = multiple.Matches[SqlGrammar.GroupByList.Multiple.First];
         IGroupByItem first = (IGroupByItem)buildArithmeticItem(firstResult);
         builder.AddGroupBy(first);
         MatchResult remainingResult = multiple.Matches[SqlGrammar.GroupByList.Multiple.Remaining];
         buildGroupByList(remainingResult, builder);
         return;
     }
     MatchResult single = result.Matches[SqlGrammar.GroupByList.Single];
     if (single.IsMatch)
     {
         IGroupByItem item = (IGroupByItem)buildArithmeticItem(single);
         builder.AddGroupBy(item);
         return;
     }
     throw new InvalidOperationException();
 }
Пример #3
0
 public void TestSelect_GroupBy()
 {
     SelectBuilder builder = new SelectBuilder();
     AliasedSource table = builder.AddTable(new Table("Table"));
     builder.AddProjection(new Function("COUNT", new NumericLiteral(1)));
     builder.AddGroupBy(table.Column("Column"));
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder);
     string expected = "SELECT COUNT(1) FROM Table GROUP BY Table.Column";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }