1
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("dataTable");
dataTable.Columns.Add("caller", typeof(String));
dataTable.Columns.Add("callee", typeof(String));
dataTable.Rows.Add("999", "888",2012-11-06 12:11:30);
dataTable.Rows.Add("888", "999",2012-05-06 12:06:30);
dataTable.Rows.Add("888", "999",2010-05-06 06:06:30);
dataTable.Rows.Add("999", "555",2012-04-06 12:11:30);
dataTable.Rows.Add("555", "333",2012-01-06 12:11:30);
dataTable.Rows.Add("555", "999",2012-10-06 12:11:30);
dataSet.Tables.Add(dataTable);
var result = dataSet.Tables["dataTable"].Select().Select(dr =>
new
{
caller1 = StringComparer.CurrentCultureIgnoreCase.Compare(dr["caller"], dr["callee"]) < 0 ? dr["callee"] : dr["caller"],
caller2 = StringComparer.CurrentCultureIgnoreCase.Compare(dr["caller"], dr["callee"]) < 0 ? dr["caller"] : dr["callee"]
})
.GroupBy(drg => new { drg.caller1, drg.caller2 })
.Select(drg => new { drg.Key.caller1, drg.Key.caller2, count = drg.Count() });
該查詢給我造成這樣如何寫查詢在LINQ對於這種情況
caller1 caller2 count
999 888 3
999 555 2
555 333 1
我想補充的最大和最小日期列也是在這個結果集。我怎樣才能做到這一點。 如果有兩個數字的最大和最小日之間只有一個呼叫將是相同的