ASP.NET/SQL下拉列表排序顺序

ASP.NET/SQL下拉列表排序顺序,asp.net,sql,drop-down-menu,sql-order-by,Asp.net,Sql,Drop Down Menu,Sql Order By,我正在尝试更正ASP.NET下拉列表的排序顺序 我的问题是,我需要选择一个不同的序列号,并将这些编号按DateTime Desc组织 但是,如果在查询中使用DISTINCT而不选择DateTime字段,则无法按DateTime排序 但是,如果选择DateTime,则会选择与单个序列号关联的每个数据值,并导致重复 “我的页面”的目的是显示所有序列的数据或与一个序列关联的数据。当新周期开始时(因为它是新的生产运行),序列号恢复为1。所以我也不能简单地按序列号组织 当我使用下面的SQL语句时,列表框是

我正在尝试更正ASP.NET下拉列表的排序顺序

我的问题是,我需要选择一个不同的序列号,并将这些编号按DateTime Desc组织

但是,如果在查询中使用DISTINCT而不选择DateTime字段,则无法按DateTime排序

但是,如果选择DateTime,则会选择与单个序列号关联的每个数据值,并导致重复

“我的页面”的目的是显示所有序列的数据或与一个序列关联的数据。当新周期开始时(因为它是新的生产运行),序列号恢复为1。所以我也不能简单地按序列号组织

当我使用下面的SQL语句时,列表框是按照我要求的顺序排列的,但经过一段时间(通常是几个小时)后,顺序发生了变化,似乎没有组织结构


我是ASP.NET/SQL的新手,有人知道我的问题的解决方案吗。

如果每个序列号都有多个日期时间,那么您想用哪个来订购?如果是最近的,请尝试以下操作:

SELECT  SerialNumber,
        MAX(DateTimeField)
FROM    Table
GROUP BY SerialNumber
ORDER BY 2 DESC

如果每个序列号都有多个日期时间,那么您希望使用哪一个进行订购?如果是最近的,请尝试以下操作:

SELECT  SerialNumber,
        MAX(DateTimeField)
FROM    Table
GROUP BY SerialNumber
ORDER BY 2 DESC

我不知道是否每个人都同意这一点,但当我在一个问题中看到一个明显的问题时,我脑海中闪过的第一个想法是“这是错误的”。一般来说,DISTINCT是不必要的,当编写查询的人不太清楚自己在做什么时,就会使用DISTINCT,这可能是因为您说您是Sql新手


如果不完全了解您的模型,很难百分之百地帮助您,但我要说的是,您应该使用GROUP BY子句而不是DISTINCT,然后您可以正确排序。

我不知道是否每个人都同意这一点,但当我在查询中看到DISTINCT时,我脑海中闪过的第一个想法是“这是错误的”. 一般来说,DISTINCT是不必要的,当编写查询的人不太清楚自己在做什么时,就会使用DISTINCT,这可能是因为您说您是Sql新手


如果不完全了解您的模型,很难百分之百地为您提供帮助,但我想说的是,您应该使用GROUP BY子句而不是DISTINCT,这样您就可以正确订购了。

谢谢David,这是一种享受!有一件事你能用“2”来解释这个顺序吗?因为我以前没有遇到过,我只使用过实际的字段名。没关系,“2”表示第二个冒号。谢谢你的解决方案!谢谢你,大卫,这真是一种享受!有一件事你能用“2”来解释这个顺序吗?因为我以前没有遇到过,我只使用过实际的字段名。没关系,“2”表示第二个冒号。谢谢你的解决方案!