1
我有三個表名爲User
,Role
和Balance_updates
。 User
關於用戶的表格保存信息,Role
描述了諸如客戶,管理員,經理的用戶的類型和Balance_updates
存儲關於餘額的所有交易,即存儲關於與餘額相關的交易的歷史。在Mysql中的特定日期之間實現數據
表
用戶
+-----------------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+-------------------+-------+
| username | varchar(20) | NO | PRI | NULL | |
| password | varchar(32) | NO | | NULL | |
| email | varchar(50) | YES | | NULL | |
| role_id | int(11) | NO | MUL | NULL | |
| mobile_wallet_balance | double(20,2) | NO | | 0.00 | |
| merit_point | bigint(20) | YES | | NULL | |
| status | int(11) | NO | | NULL | |
| is_auto_btm_enabled | tinyint(1) | YES | | 0 | |
| created_at | datetime | YES | | NULL | |
| updated_at | timestamp | YES | | CURRENT_TIMESTAMP | |
| gender | varchar(20) | YES | | NULL | |
| validity | date | YES | | NULL | |
| status_desc | text | YES | | NULL | |
+-----------------------+--------------+------+-----+-------------------+-------+
Role
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(25) | NO | UNI | NULL | |
| description | varchar(255) | YES | | NULL | |
| value | varchar(25) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
Balance_updates
+------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(15) | NO | | NULL | |
| role_id | int(11) | YES | | NULL | |
| amount | double(20,2) | YES | | NULL | |
| updated_at | timestamp | NO | | CURRENT_TIMESTAMP | |
+------------+--------------+------+-----+-------------------+----------------+
數據在Balance_updates
目的
我想在任何給定的日期生成所有用戶及其各自的餘額; 例如,如果我想要給定日期的餘額聲明2012-12-28
它應該從Balance_updates
產生最新餘額。
我已經試過
SELECT DISTINCT (
u.username
), r.value, u.amount AS `amount`
FROM Balance_updates u
INNER JOIN Role r ON u.role_id = r.id
WHERE u.amount > 0.0 && UNIX_TIMESTAMP(u.updated_at) < UNIX_TIMESTAMP('2013-1-3 23:59:59')
ORDER BY r.value, UNIX_TIMESTAMP(u.updated_at) DESC
結果和問題
正如你希望它返回從Balance_updates即記錄每一個其他的用戶事務的所有值。
問:
我1.How可以實現在特定date.If在該日期用戶平衡用戶的最新餘額對帳單,然後不改變顯示他在以前的時間平衡上次更改。
任何幫助將不勝感激;
對不起已故的答覆類型....但由於它的工作原理...,我會鍛鍊我的數據庫,正如你所建議的...再次謝謝.. – Runcorn