SQL - 如何按最小日期排序

时间:2016-03-05 01:14:19

标签: mysql sql datetime

我有一张包含日志的表

PERSON ID             LOGDATE (DATETIME)
  1000                2015-10-20 10:00:00
  1000                2015-11-11 09:10:22
  2001                2015-10-11 10:22:11

我需要按LOGDATE -DATETIME订购数据 - 但每个ID的日期最短。

select PERSONALID, LOGDATE from TABLE   group by PERSONALID order by
MIN(LOGDATE) DESC

我可以通过ID进行GROUP - ORDER BY Min DATE(每个结果按ID),但是最终结果不按MIN DATE排序结果..

RESULT:
1000 ------------- 2015-10-20 10:00:00 (min date for ID=1000)
2001 ------------- 2015-10-11 10:22:11 (min date for ID=2001)

正确的答案是:

RESULT:
2001 ------------- 2015-10-11 10:22:11 (min date for ID=2001)
1000 ------------- 2015-10-20 10:00:00 (min date for ID=1000)

出了什么问题?

2 个答案:

答案 0 :(得分:4)

这应该这样做:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,DisplayName,Date,Amount,Comment")] Charity charity)
{

    if (ModelState.IsValid)
    {
        if(!string.IsNullOrEmpty(charity.Comment)
        {
           var comment = charity.Comment.ToLower().Replace("hot","###").Replace("cold","###");
           charity.Comment = comment;
        }
        db.Donations.Add(charity);
        db.SaveChanges();
        return RedirectToAction("Additionalinfo", "Charities");
    }
    return View(charity);
}

答案 1 :(得分:0)

您需要选择MIN(LOGDATE),而不是LOGDATE。选择LOGDATE会导致MySQL从每个组中返回不确定记录的值 - 有关详细信息,请参阅MySQL Handling of GROUP BY