[英]age from dob in sql
在sql查詢中,where子句出現問題。
我在桌子上坐着一個人。 我需要找到最小的snr。 顧客。 最年輕的高級客戶的年齡從55歲開始。DOB的數據包含所有兒童,父母,高級客戶的DOB。 在“ where”行中,我必須編寫一個條件來檢查年齡是否大於55歲並且在高級客戶中必須更小。請向我提出一些建議。我之前曾發布過類似的問題,但沒有得到任何答復可以幫助我解決它。
我的表中沒有年齡參數。
SSn DOB
22 1950-2-2
21 1987-3-3
54 1954-4-7
我需要找到與年齡相對應的ssn,該年齡必須大於55且在上述值中較小。
如果您擁有DOB,則可以根據當前日期輕松計算年齡:
WHERE DATE_ADD(DOB, INTERVAL 55 YEAR) < NOW()
這將使DOB增加55年,並且如果它大於當前時間,這是事實。 這表明他們至少55歲。
在下面的腳本中,子選擇查找55歲以上的年輕人的DOB; 然后將其用於查找相應的SSN記錄。 [這使用SQL Server語法。]
SELECT yt.*
FROM *yourtable* yt
INNER JOIN
(
SELECT MAX(DOB) AS DOB
FROM *yourtable*
WHERE DATEADD(year, 55, DOB) < getdate()
) maxdob
ON maxdob.DOB = yt.DOB
注意,如果有多個具有相同DOB的人員,則可能會找到多個記錄。 如果要強制執行此單個限制,請在SELECT語句中添加TOP 1子句。 心連心
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.