2012-12-22 39 views
-1

我有表結構:MySQL - 具有日期的多個MAX值

A | B | C |日期

我想選擇MAX(A),MAX(B),MAX(C)和每個MAX分配日期...可以在MySQL中僅使用1個SELECT來完成(沒有時態表,如SELECT * FROM(SELECT ....))?

例子:

A | B | C | Date 
------------------------ 
10 | 20 | 0 | 25.5.2012 
0 | 13 | 7 | 25.3.2012 
70 | 5 | 15 | 25.4.2012 

Result: 
A -> 70 - 25.4.2012 
B -> 20 - 25.5.2012 
C -> 15 - 25.4.2012 
+2

你可以給樣本記錄與期望的結果? –

+0

解釋清楚你的問題與表結構和你需要輸出 –

+0

'和每個MAX分配日期'太混亂... –

回答

1
(SELECT 'A' AS ColumnM 
      , a AS Result 
      , Date 
    FROM tableX 
    ORDER BY a DESC 
     LIMIT 1 
) 
UNION ALL 
    (SELECT 'B' 
      , b 
      , Date 
    FROM tableX 
    ORDER BY b DESC 
     LIMIT 1 
) 
UNION ALL 
    (SELECT 'C' 
      , c 
      , Date 
    FROM tableX 
    ORDER BY c DESC 
     LIMIT 1 
) ; 
0

我認爲你需要這個::

Select 
MAX(a), 
MAX(b), 
MAX(c) 
from table 
GROUP BY `Date`