我在我的数据库课程中的“使用结构化查询语言”模块中需要回答一个问题,我仍然坚持其中一个问题。
以下是问题:
计算死亡的马的年龄并将其乘以3以获得可比的人类年龄。列出他们的horse_id,名字和“人类年龄”。按horse_id订购。
以下是我一直在努力实现这一目标的问题,但我得到的数字是人类时代的重要数据:
SELECT horse_id, name, died * 3
AS 'human year'
FROM horse
ORDER BY horse_id;
以下是此查询中使用的马表及其行:
HORSE TABLE STRUCTURE
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| horse_id | int(2) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| colour | varchar(20) | YES | | NULL | |
| sire | int(4) | YES | | NULL | |
| dam | int(4) | YES | | NULL | |
| born | int(4) | YES | | NULL | |
| died | int(4) | YES | | NULL | |
| gender | varchar(1) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
我得到的输出如下:
+----------+--------------+------------+
| horse_id | name | human year |
+----------+--------------+------------+
| 101 | Flash | 0 |
| 102 | Star | 0 |
| 201 | Boxer | 0 |
| 301 | Daisy | 0 |
| 401 | Snowy | 5985 |
| 501 | Bluebell | 5979 |
| 502 | Sally | 5994 |
| 9998 | Unknown dam | 0 |
| 9999 | Unknown sire | 0 |
+----------+--------------+------------+
我正在撕掉我的头发,似乎无法获得正确的输出,并认为这里有人会有一些想法。
提前致谢,我希望我提供了大量的信息
Stu:)
答案 0 :(得分:1)
我将5985分为3并获得1995年。所以你的死亡和#34;场是年。你必须从当前年份减去它,然后再乘以3.也许是这样......
SELECT horse_id, name, (YEAR(CURDATE()) - died) * 3 AS 'human year'
FROM horse
WHERE died > 0
ORDER BY horse_id;