Jika kita punya tabel :
IDCOLOUMN | Nilai1 | Nilai2 | Nilai3 | Nilai4 |
101 | 1000 | 35000 | 0 | 75000 |
102 | 1200 | 35000 | 0 | 75000 |
103 | 0 | 50000 | 1000000 | 0 |
104 | 0 | 0 | 50000 | 0 |
304 | 0 | 200000 | 75000 | 0 |
305 | 0 | 100000 | 50000 | 0 |
lalu kita ingin mencari nilai max dari masing2 id, maka kita bisa menggunakan syntax :
SELECT NAMATABEL.IDCOLOUMN, MAX(t.val) AS NILAIMAX
FROM NAMATABEL INNER JOIN
(SELECT IDCOLOUMN, NILAI1 AS val
FROM NAMATABEL
UNION ALL
SELECT IDCOLOUMN, NILAI2 AS val
FROM NAMATABEL
UNION ALL
SELECT IDCOLOUMN, NILAI3 AS val
FROM NAMATABEL
UNION ALL
SELECT IDCOLOUMN, NILAI4 AS val
FROM NAMATABEL) t ON NAMATABEL.IDCOLOUMN = t.IDCOLOUMN COLLATE SQL_Latin1_General_CP1_CI_AS
GROUP BY NAMATABEL.IDCOLOUMN
Maka akan dihasilkan nilai seperti :
IDCOLOUMN | NILAIMAX |
101 | 75000 |
102 | 75000 |
103 | 1000000 |
104 | 50000 |
304 | 200000 |
305 | 100000 |
Semoga bermanfaat