我对此发生的事情并不理想。
这很好用
SELECT
SUM(LAMT)AS SUMAMT,
COUNT(LAMT)AS CNT,
IFNULL(LSUBDT,(CURDATE()-INTERVAL 9999 DAY))AS MXDT
FROM product1
WHERE LSUBBY IN (12,15,17,13,14,16) AND RECST=1 ORDER BY LSUBDT
它返回我(这是fineZ)
SUMAMT> 645746.00
CNT> 4
MXDT> 2012-11-14 15:56:56
BUT 当我使用 MAX(IFNULL(LSUBDT,(CURDATE() - INTERVAL 9999 DAY)))AS MXDT 它让我回复 MXDT> 323031322d31312d32332030353a30323a3037
为什么?我不能用它在使用strtotime时在php中进行比较
1)。 sql MAX()有什么问题?
2)。 MAX()旁边的任何替代方案?我想得到最新的DATETIME
3)。可以在某些地方有些如何将PHP转换回2012-11-14 15:56:56格式然后我继续在php中比较以后
顺便说一句
4)。 MXDT的返回结果> 2012-11-14 15:56:56也不是正确的数据库中的最新日期时间是2012-11-24 5:36:25,如果我删除总和和计数然后它正确地返回我。
感谢
答案 0 :(得分:0)
试试这个:
SELECT SUM(SUMAMT)AS SUMAMT, SUM(CNT)AS CNT, MAX(MXDT) AS MXDT
from (SELECT SUM(LAMT)AS SUMAMT, COUNT(LAMT)AS CNT,
IFNULL(LSUBDT,(CURDATE()-INTERVAL 9999 DAY)) AS MXDT
FROM (SELECT LAMT, LSUBDT FROM product1
WHERE LSUBBY IN (12,15,17,13,14,16) AND RECST=1 ORDER BY LSUBDT DESC
) AS A GROUP BY LSUBDT
) AS B