0

以下は私のSQLステートメントです。複数の戻り値からMAXを見つける方法がわかりません。とにかくここに私のコードがあります。私が問題を抱えている部分は[]でマークされています。

SELECT 
(product1.CNT+product2.CNT+product3.CNT)AS CNT,
(
 IFNULL(product1.SUMAMT,0)+
 IFNULL(product2.SUMAMT,0)+
 IFNULL(product3.SUMAMT,0)
)AS AMTAMT,

[ MAX(product1.MXDT, product2.MXDT, product3.MXDT)AS MAXDT ]

FROM 

(SELECT 
 SUM(LAMT)AS SUMAMT, 
 COUNT(LAMT)AS CNT,
 IFNULL(LSUBDT,(CURDATE()-INTERVAL 9999 DAY))AS MXDT
 FROM product1 WHERE LSUBBY=1 AND RECST=1
)product1 

CROSS JOIN 
(SELECT 
 SUM(LAMT)AS SUMAMT, 
 COUNT(LAMT)AS CNT,
 IFNULL(LSUBDT,(CURDATE()-INTERVAL 9999 DAY))AS MXDT
 FROM product2 WHERE LSUBBY=1 AND RECST=1
)product2

CROSS JOIN 
(SELECT 
 SUM(LAMT)AS SUMAMT, 
 COUNT(LAMT)AS CNT,
 IFNULL(LSUBDT,(CURDATE()-INTERVAL 9999 DAY))AS MXDT
 FROM product3 WHERE LSUBBY=1 AND RECST=1
)product3
4

1 に答える 1

1

あなたが探している関数はGREATESTと呼ばれています:

...
GREATEST(product1.MXDT, product2.MXDT, product3.MXDT) AS MAXDT
....
于 2012-11-24T20:03:39.787 に答える