[attach]47880[/attach]表记录字段如下:[单价],[数量],[总额],(其中[总额]=[单价]*[数量]
窗体上加一个[结存]文本框控件,如果是第一条记录,则[结存]=[总额],否则,[结存]=上一条记录的[结存]+本条记录的[总额],如此类推,不知道能否实现?有劳版主指教了!作者: Henry D. Sy 时间: 2012-1-1 22:02
1.发帖请用简明能说明问题的标题
2、表中没有必要保存金额,其完全可以利用查询得到
3. 你的问题应该是求余额
4.最好能传例子作者: smilingkiss 时间: 2012-1-1 22:44
已经更新,请版主指教方法作者: Henry D. Sy 时间: 2012-1-1 23:55
smilingkiss 发表于 2012-1-1 22:44
已经更新,请版主指教方法
请把表中的总额去掉
SELECT a.ID, a.单价, a.数量, (select sum(单价*数量) from 表1 as b where b.id<=a.id) AS 总额
FROM 表1 AS a;
复制代码
[attach]47881[/attach]作者: smilingkiss 时间: 2012-1-2 10:46
谢谢版主!那么晚了还孜孜不倦啊
另,能否对代码给我简单分析说明一下,我是菜鸟,不知道其中的a,b是怎么定义的,谢谢!作者: Henry D. Sy 时间: 2012-1-2 10:55
a,b 是表的别名,也就是说: a表,b表其实是表1(相当于副本)作者: ycxchen 时间: 2012-1-2 17:43
在4楼的代码中,我也想请教:既然表1已经有单价、数量字段了,为何还要表的别名的?另, 为何要设b.id<=a.id这个条件?作者: Henry D. Sy 时间: 2012-1-2 22:39
不用怎么比呀,自己跟自己比?
也就是a.id<=a.id?作者: andymark 时间: 2012-1-3 09:20
因为引用了2次相同的表,第二次引用表1需要另名才能认别
也可以这样书写
SELECT ID, 单价, 数量, (select sum(单价*数量) from 表1 as b where b.id<=表1.id) AS 总额
FROM 表1 作者: ycxchen 时间: 2012-1-3 09:38
经andymark的提醒,明明白白了,多谢两位!作者: george 时间: 2012-3-7 15:24
好的,原来求余额这么简单,都不需要什么临时表和编程,直接查询就出来了。学习,佩服!