鍍金池/ 問(wèn)答/Java  數(shù)據(jù)庫(kù)/ 求幫忙解答sql?

求幫忙解答sql?

表一: appl_id、name、sex、id_No
表二: appl_id、appl_date、busin_key

在如下時(shí)間段內(nèi),根據(jù)(id_No)找出時(shí)間(appl_date)最近的(appl_id) (表一中數(shù)據(jù)有重復(fù),appl_id為關(guān)聯(lián)主鍵)

to_date('2018-05-23 21:00:00','yyyy-mm-dd HH24:MI:SS')
to_date('2018-05-29 23:59:59','yyyy-mm-dd HH24:MI:SS')

回答
編輯回答
風(fēng)畔

時(shí)間最近,就是按時(shí)間降序,從大到小排序,即ORDER BY appl_time DESC
同時(shí)限定了時(shí)間范圍,

最好是有脫敏后的數(shù)據(jù)樣本和數(shù)據(jù)庫(kù)類型,比如是mysql還是sql server

只是希望提取id:
SELECT appl_id FROM 表二 WHERE appl_time BETWEEN '2018-05-23 21:00:00' AND ''2018-05-29 23:59:59' ORDER BY appl_time DESC

提取信息:
SELECT 表一.appl_id,表一.name,表一.sex FROM 表一
LEFT JOIN 表二 ON 表二.appl_id = 表一.appl_id
WHERE 表二.appl_time BETWEEN '2018-05-23 21:00:00' AND ''2018-05-29 23:59:59' ORDER BY 表二.appl_time DESC

如何希望對(duì)提取的信息去重復(fù)處理,需要提供數(shù)據(jù)樣本和具體數(shù)據(jù)庫(kù)類型

2017年5月3日 16:03
編輯回答
凹凸曼

由于你沒(méi)說(shuō)明兩張表到底是哪兩個(gè)字段相關(guān)聯(lián)的、我這里就默認(rèn)是 表1的appl_id 和 表2的appl_id關(guān)聯(lián)

SELECT a.appl_id,MAX(b.appl_date) FROM [Table_1] a 

INNER JOIN [Table_2] b ON a.appl_id=b.appl_id

WHERE b.appl_date BETWEEN '2018-05-23 21:00:00','yyyy-mm-dd HH24:MI:SS' AND '2018-05-29 23:59:59','yyyy-mm-dd HH24:MI:SS'

AND a.id_No=xxxxxx 這里輸入你想要查詢的id_No

GROUP BY a.appl_id
2018年7月10日 02:09
編輯回答
別傷我

給你思路吧,代碼就不寫了。一,既然是關(guān)聯(lián)的表,那么先用 left join 進(jìn)行拼接一個(gè)視圖,然后根據(jù)你設(shè)定的時(shí)間為 where 條件,最后因?yàn)槟阋@取時(shí)間最近的,所以對(duì)時(shí)間進(jìn)行排序,再最后,因?yàn)槟愕臄?shù)據(jù)可能重復(fù),所以排序時(shí)間后面再加上主鍵排序。

2017年11月12日 17:06
編輯回答
逗婦乳

題意稍微有點(diǎn)不明,不過(guò),這個(gè)SQL還是比較簡(jiǎn)單的吧。
我來(lái)試試
select * from 表1
where appl_id in (select appl_id from 表2 where appl_time between '開始時(shí)間' and '結(jié)束時(shí)間')
and id_no = ?(表示參數(shù))

2018年2月5日 06:55