【发布时间】:2014-10-27 19:55:48
【问题描述】:
我的架构看起来像
select dob, name from student;
DOB NAME
--------- -------
01-APR-68 rylan
01-APR-70 joshua
01-APR-83 ava
01-APR-76 adalgisa
01-APR-83 zaida
01-APR-83 perry
01-APR-82 aiden
01-APR-75 madison
01-APR-62 zoe
01-APR-72 brendon
01-APR-75 cayden
01-APR-83 hannah
当我尝试从出生日期获取age 时
SELECT DISTINCT s.NAME,
s.ssn,
s.address.streetName AS street,
( Floor (Months_between(Trunc(sysdate), s.dob) / 12) ) AS age
FROM student s,
student s1
WHERE s.dob = (SELECT Max(DISTINCT dob)
FROM student);
NAME SSN STREET AGE
----- -------- ------------ ---
perry 111110003 union square -69
zaida 111110000 5th street -69
hannah 111111111 union square -69
ava 111118888 5th street -69
年龄是负数,我不知道为什么会这样,有人可以指出查询的问题吗?
谢谢
我正在使用Oracle 数据库
【问题讨论】:
-
您的查询没有意义。
where子句在做什么?为什么要进行自加入? -
一个学生可以过多少个生日?
-
@PM77-1 - 终极问题
-
我在 SQL Fiddle 上没有得到相同的结果:sqlfiddle.com/#!4/1b126/5/0