2014-02-28 175 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

相關問題