例えば以下のようなSQL文とその結果があったとします。
※もっとスマートなSQL文にできると思いますが。
更新日時:datetime
種類:int
ID:int
select MIN(case WHEN 更新日時 IS NULL THEN '9999-01-01' WHEN 更新日時 = 0 THEN NULL ELSE 更新日時 end) as koushin,ID from tbl_file where 種類=22 group by ID
結果:
koushin | ID |
---|---|
2017-10-09 | 18 |
2017-10-10 | 19 |
date1:datetime
date2:datetime
NO:int
select tnou.nou,tnou.NO from (select MIN(case when plnt<plnk then plnt else plnk end) as nou, NO from (select NO,MIN(case WHEN date1 IS NULL THEN '9999-01-01' WHEN date1= 0 THEN NULL ELSE date1 end) as plnt, MIN(case WHEN date2 IS NULL THEN '9999-01-01' WHEN date2 = 0 THEN NULL ELSE date2 end) as plnk from tbl_report group by NO) as mt group by mt.NO) as tnou
結果:
nou | NO |
---|---|
2017-10-11 | 17 |
2017-10-12 | 18 |
2017-10-13 | 20 |
この二つのSQLを結合し、
IDとNOが同じ番号だった場合は、古い日付の方を取得して結合したいです。
###理想の結果:
日付 | 番号 |
---|---|
2017-10-11 | 17 |
2017-10-09 | 18 |
2017-10-10 | 19 |
2017-10-13 | 20 |
この結果が実現できるSQLはできますでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。