2014-02-28 60 views
-1

因此,我必须列出租户家族中比租户本身更早的任何人的姓名。有两张桌子。租户和tenant_family。我试着比较这两个日期来查看tenant_family表中的哪个DOB小于(意味着它们会更老)租户表中的DOB。比较来自不同表格的DOB

这是我迄今为止,但它似乎是错误的。有人能指导我获得正确的输出吗?

SELECT DISTINCT tenant_family.name 
FROM TENANT_FAMILY, tenant 
WHERE tenant_family.dob < tenant.TENANT_DOB; 
+0

你可以添加一些样本数据和你期望得到的结果吗?理解你要射击的东西有点困难。 – Mureinik

回答

0

使用DATE函数来提取您的查询的日期部分像比较:

select distinct tenant_family.name from TENANT_FAMILY, tenant where DATE(tenant_family.dob) < DATE(tenant.TENANT_DOB);

如果您dobTENANT_DOB不存储为DATE数据类型在数据库或它们被存储为DATETIME,那么你可能只提取使用该功能的日期部分:

select distinct tenant_family.name from TENANT_FAMILY, tenant where date_format(tenant_family.dob,"%y-%m-%d") < date_format(tenant.TENANT_DOB,"%y-%m-%d);

这应该会在比较后给你正确的结果。

+0

我刚刚试过这个,它给了我错误“缺少表达式” – user3363573

+0

你使用的是Oracle 11G吗? – Neels