[英]Get only max value although where = not max value
我只會得到最大值,盡管 where = not value MAX,這是我的表:
|---------------------|------------------|
| JAMINAN | ID |
|---------------------|------------------|
| 20210101 | A0317010 |
|---------------------|------------------|
| 20200101 | A0317010 |
|---------------------|------------------|
這是我獲得 MAX 值的代碼
SELECT MAX(CONVERT(CHAR(12),a.akhir_jaminan,112)) AS ID,
a.kode_aparat AS ID
FROM mps_ms_history_jaminan_aparat a
WHERE a.kode_aparat = 'A0317010'
GROUP BY a.kode_aparat
這是結果:
|---------------------|------------------|
| JAMINAN | ID |
|---------------------|------------------|
| 20210101 | A0317010 |
|---------------------|------------------|
如果函數 WHERE akhir_jaminan = not max, result NULL data...這是我的代碼:
SELECT MAX(CONVERT(CHAR(12),a.akhir_jaminan,112)) AS jaminan,
a.kode_aparat AS id
FROM mps_ms_history_jaminan_aparat a
WHERE a.kode_aparat = 'A0317010' AND CONVERT(CHAR(6),a.akhir_jaminan,112) = '202001'
GROUP BY a.kode_aparat
|---------------------|------------------|
| JAMINAN | ID |
|---------------------|------------------|
| 20200101 | A0317010 |
|---------------------|------------------|
我會得到這樣的結果
|---------------------|------------------|
| JAMINAN | ID |
|---------------------|------------------|
| NULL | NULL |
|---------------------|------------------|
如果我沒記錯的話,您想要的是顯示最新日期,如果不是最新日期,它將向用戶顯示空值。
SELECT CASE WHEN MAX(CONVERT(CHAR(12),a.akhir_jaminan,112)) = '20200101'
THEN a.akhir_jaminan ELSE NULL END AS jaminan,
CASE WHEN a.kode_aparat = 'A0317010'
THEN a.kode_aparat ELSE null END AS id
FROM mps_ms_history_jaminan_aparat a
GROUP BY a.akhir_jaminan, a.kode_aparat
這是使用CASE子句讓腳本能夠確定最新日期是否是所需日期。 如果它不是所需的腳本,您可以在下面發表評論,我會盡快修改腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.