[狼头]VB版有600分的技术帖 http://topic.csdn.net/u/20101211/11/b4119ee5-a216-479c-bc98-b0d38d0e9c52.html?3866去回答,大家周末快乐。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主你的例子显然示经验证来测试。mysql> select * from DepositDetail;+-----------+------------+-------------+----------+---------------+-----------+--------------------+-------------+---------+---------+-------------+--------+----------------+| DepositID | CustomerID | DepositType | Amount | Description | CashierID |TransDate | TransStatus | TransID | OrderID | PaymentType | TermID | DepositGroupID |+-----------+------------+-------------+----------+---------------+-----------+--------------------+-------------+---------+---------+-------------+--------+----------------+| 1 | 1 | Cash | 200.0000 | INWARD CR-IBG | 1 |2010-10-07 11:21:14 | 1 | 0 | 0 | | 1 | 1 || 2 | 1 | Cash | 300.0000 | INWARD CR-IBG | 1 |2010-10-07 11:28:40 | 1 | 0 | 0 | | 1 | 1 || 3 | 1 | Cash | 600.0000 | Paid | 1 |2010-10-07 11:48:44 | 2 | 0 | 0 | | 1 | 1 || 4 | 2 | Cash | 800.0000 | INWARD CR-IBG | 1 |2010-10-07 12:00:28 | 1 | 0 | 0 | | 1 | 1 || 5 | 2 | Cash | 60.0000 | Deposit | 1 |2010-10-07 15:33:24 | 1 | 0 | 0 | | 1 | 1 || 6 | 2 | Cash | 80.0000 | Deposit | 1 |2010-11-07 15:52:24 | 1 | 0 | 0 | | 1 | 1 || 7 | 2 | Cash | 500.0000 | Deposit | 1 |2010-11-17 16:09:11 | 2 | 0 | 0 | | 1 | 1 || 8 | 1 | Cash | 100.0000 | Deposit | 1 |2010-11-27 16:11:34 | 2 | 0 | 0 | | 1 | 1 || 9 | 2 | Cash | 200.0000 | Deposit | 1 |2010-12-27 16:14:04 | 1 | 0 | 0 | | 1 | 1 || 10 | 1 | Cash | 23.0000 | Deposit | 1 |2010-10-07 16:38:11 | 2 | 0 | 0 | | 1 | 1 || 11 | 1 | Cash | 250.0000 | Deposit | 1 |2010-12-07 16:57:52 | 1 | 0 | 0 | | 1 | 1 || 12 | 3 | Cash | 50.0000 | Deposit | 1 |2010-09-07 17:01:18 | 2 | 0 | 0 | | 1 | 1 || 13 | 3 | VISA | 60.0000 | Deposit | 1 |2010-12-07 17:10:03 | 1 | 0 | 0 | | 1 | 1 |+-----------+------------+-------------+----------+---------------+-----------+--------------------+-------------+---------+---------+-------------+--------+----------------+13 rows in set (0.05 sec)mysql> select TransDate,CustomerID,Description, -> if(TransStatus=1,Amount,0) as `in`, -> if(TransStatus=2,Amount,0) as `out`, -> (select sum(if(TransStatus=1,Amount,-Amount)) from DepositDetail where CustomerID=t.CustomerID and TransDate<=t.sk) as Balance -> from( -> select date(TransDate) as TransDate,CustomerID,Description,TransStatus,Amount,TransDate as sk -> from DepositDetail -> where CustomerID=1 -> union -> select date(TransDate)-interval day(TransDate) day + interval 1 day,CustomerID,'OPENBALANCE' as Description, -> 1,0,date(TransDate)-interval day(TransDate) day + interval 1 day -> from DepositDetail -> where CustomerID=1 -> ) t -> order by sk;+------------+------------+---------------+----------+----------+-----------+| TransDate | CustomerID | Description | in | out | Balance |+------------+------------+---------------+----------+----------+-----------+| 2010-10-01 | 1 | OPENBALANCE | 0.0000 | 0 | NULL || 2010-10-07 | 1 | INWARD CR-IBG | 200.0000 | 0 | 200.0000 || 2010-10-07 | 1 | INWARD CR-IBG | 300.0000 | 0 | 500.0000 || 2010-10-07 | 1 | Paid | 0 | 600.0000 | -100.0000 || 2010-10-07 | 1 | Deposit | 0 | 23.0000 | -123.0000 || 2010-11-01 | 1 | OPENBALANCE | 0.0000 | 0 | -123.0000 || 2010-11-27 | 1 | Deposit | 0 | 100.0000 | -223.0000 || 2010-12-01 | 1 | OPENBALANCE | 0.0000 | 0 | -223.0000 || 2010-12-07 | 1 | Deposit | 250.0000 | 0 | 27.0000 |+------------+------------+---------------+----------+----------+-----------+9 rows in set (0.03 sec)mysql>而你期望的结果是很明显你是浪费别人的时间! Oracle索引监控(monitor index) MYSQL 把所有数据按照小时排序 varchar(m)长度问题 关于截取BLOB类型数据 请教想实现这种列表如何写SQL... 通过odbc连接局域网内mysql服务器出错 求救 难题征求最佳解决方案 请问mysql里如何模糊查找中文字段??? 请问提交TEXT型数据到MYSQL中需要经过那里处理? 高分请教: Mysql 只查询单词 数据量太大,导入数据库的问题
mysql> select * from DepositDetail;
+-----------+------------+-------------+----------+---------------+-----------+--------------------+-------------+---------+---------+-------------+--------+----------------+
| DepositID | CustomerID | DepositType | Amount | Description | CashierID |TransDate | TransStatus | TransID | OrderID | PaymentType | TermID | DepositGroupID |
+-----------+------------+-------------+----------+---------------+-----------+--------------------+-------------+---------+---------+-------------+--------+----------------+
| 1 | 1 | Cash | 200.0000 | INWARD CR-IBG | 1 |2010-10-07 11:21:14 | 1 | 0 | 0 | | 1 | 1 |
| 2 | 1 | Cash | 300.0000 | INWARD CR-IBG | 1 |2010-10-07 11:28:40 | 1 | 0 | 0 | | 1 | 1 |
| 3 | 1 | Cash | 600.0000 | Paid | 1 |2010-10-07 11:48:44 | 2 | 0 | 0 | | 1 | 1 |
| 4 | 2 | Cash | 800.0000 | INWARD CR-IBG | 1 |2010-10-07 12:00:28 | 1 | 0 | 0 | | 1 | 1 |
| 5 | 2 | Cash | 60.0000 | Deposit | 1 |2010-10-07 15:33:24 | 1 | 0 | 0 | | 1 | 1 |
| 6 | 2 | Cash | 80.0000 | Deposit | 1 |2010-11-07 15:52:24 | 1 | 0 | 0 | | 1 | 1 |
| 7 | 2 | Cash | 500.0000 | Deposit | 1 |2010-11-17 16:09:11 | 2 | 0 | 0 | | 1 | 1 |
| 8 | 1 | Cash | 100.0000 | Deposit | 1 |2010-11-27 16:11:34 | 2 | 0 | 0 | | 1 | 1 |
| 9 | 2 | Cash | 200.0000 | Deposit | 1 |2010-12-27 16:14:04 | 1 | 0 | 0 | | 1 | 1 |
| 10 | 1 | Cash | 23.0000 | Deposit | 1 |2010-10-07 16:38:11 | 2 | 0 | 0 | | 1 | 1 |
| 11 | 1 | Cash | 250.0000 | Deposit | 1 |2010-12-07 16:57:52 | 1 | 0 | 0 | | 1 | 1 |
| 12 | 3 | Cash | 50.0000 | Deposit | 1 |2010-09-07 17:01:18 | 2 | 0 | 0 | | 1 | 1 |
| 13 | 3 | VISA | 60.0000 | Deposit | 1 |2010-12-07 17:10:03 | 1 | 0 | 0 | | 1 | 1 |
+-----------+------------+-------------+----------+---------------+-----------+--------------------+-------------+---------+---------+-------------+--------+----------------+
13 rows in set (0.05 sec)mysql> select TransDate,CustomerID,Description,
-> if(TransStatus=1,Amount,0) as `in`,
-> if(TransStatus=2,Amount,0) as `out`,
-> (select sum(if(TransStatus=1,Amount,-Amount)) from DepositDetail where CustomerID=t.CustomerID and TransDate<=t.sk) as Balance
-> from(
-> select date(TransDate) as TransDate,CustomerID,Description,TransStatus,Amount,TransDate as sk
-> from DepositDetail
-> where CustomerID=1
-> union
-> select date(TransDate)-interval day(TransDate) day + interval 1 day,CustomerID,'OPENBALANCE' as Description,
-> 1,0,date(TransDate)-interval day(TransDate) day + interval 1 day
-> from DepositDetail
-> where CustomerID=1
-> ) t
-> order by sk;
+------------+------------+---------------+----------+----------+-----------+
| TransDate | CustomerID | Description | in | out | Balance |
+------------+------------+---------------+----------+----------+-----------+
| 2010-10-01 | 1 | OPENBALANCE | 0.0000 | 0 | NULL |
| 2010-10-07 | 1 | INWARD CR-IBG | 200.0000 | 0 | 200.0000 |
| 2010-10-07 | 1 | INWARD CR-IBG | 300.0000 | 0 | 500.0000 |
| 2010-10-07 | 1 | Paid | 0 | 600.0000 | -100.0000 |
| 2010-10-07 | 1 | Deposit | 0 | 23.0000 | -123.0000 |
| 2010-11-01 | 1 | OPENBALANCE | 0.0000 | 0 | -123.0000 |
| 2010-11-27 | 1 | Deposit | 0 | 100.0000 | -223.0000 |
| 2010-12-01 | 1 | OPENBALANCE | 0.0000 | 0 | -223.0000 |
| 2010-12-07 | 1 | Deposit | 250.0000 | 0 | 27.0000 |
+------------+------------+---------------+----------+----------+-----------+
9 rows in set (0.03 sec)mysql>而你期望的结果是
很明显你是浪费别人的时间!