SQL-按年龄按降序划分,出生日期



我试图从数据库中的一个表中打印出所选数据。我可以成功地做到这一点,但是然后我必须按年龄和下降顺序进行分组。但是我不知道只有出生日期才能做到这一点。任何帮助都将受到赞赏,我的SQL在下面显示。

SELECT pet_id, Name, Type, Breed, Born
FROM pet
WHERE Born
BETWEEN '1999' AND '2001'
GROUP BY 

请随时提出问题。我什么都没尝试过,因为我不知道从哪里开始。

我认为您想按年龄而不是组来。您没有建议分组的聚合功能。

so:

SELECT pet_id, Name, Type, Breed, Born
FROM pet
WHERE Born BETWEEN '1999' AND '2001'
ORDER BY Born ASC;

如果年龄的实际年龄在查询中是重要的产出,则该问答可能有助于使用出生日期和当前日期来计算年龄:如何根据出生日期和GetDate()()

计算年龄(年)

基于您的初始查询以及您要求的数据,我不认为只需

订单就需要一个组
SELECT pet_id, Name, [Type], Breed, Born, 
DATEDIFF(hour, Born, GETDATE())/8766 as 'Age'
FROM pet
WHERE Born
BETWEEN '1999' AND '2001'
ORDER BY DATEDIFF(hour, Born, GETDATE())/8766 DESC

如果要在MS访问中运行此SQL脚本,请尝试以下操作:

SELECT pet_id, Name, Type, Breed, Born
FROM pet
WHERE Born BETWEEN '1999' AND '2001'
ORDER BY DateDiff("yyyy",DateSerial([Born],1,1),DateSerial(Year(Date()),1,1)) DESC;

我假设"天生"字段实际上不是日期字段类型,而是数字类型或文本类型。

最新更新