我有一个数据库表,其中包含事务transactionIDs和datetime字段。 正如您所猜测的那样,日期时间字段和事务ID不断增加,并且余额字段要么增加/保持不变/要么减少。
我想在每天结束时提取最高的transactionID及其相应的余额。
提前感谢您的时间和帮助。
样本表格式:
答案 0 :(得分:1)
SELECT
t1.`date`,
t1.transactionID,
t2.balance
FROM
(
SELECT
`date`,
MAX(transactionID) AS `transactionID`
FROM
table
GROUP BY
DATE(`date`)
) t1
INNER JOIN
table t2
ON
t2.transactionID = t1.transactionID
ORDER BY
t1.`date`
答案 1 :(得分:-1)
试试这个:
SELECT balance FROM table WHERE table.created > TODAY() ORDER BY transactionID DESC LIMIT 1
table.created
是包含记录创建日期的列,
此查询应该只为当天提供transactionID。你需要几天的间隔吗? - 在这种情况下,以下查询应该这样做
SELECT balance FROM
(SELECT transactionID, balance FROM table ORDER BY transactionID DESC)
GROUP BY DAYOFYEAR(table.created)
答案 2 :(得分:-1)
我建议您在桌面上插入unix_timestamp作为日期字段。并使用此查询获取最高的transactionID:
$query = 'SELECT MAX (transactionID) FROM [ TABLE NAME ] WHERE [ DATE FIELD NAME ] BETWEEN' . strtotime("today 23:59"). ' AND ' . strtotime("today")