以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于数据计算的  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=43915)

--  作者:sugus
--  发布时间:2013/12/18 19:08:00
--  关于数据计算的
老师,我有个抄表信息表,里边有这么 账号 年份 月份 开始指针 结束指针 这5列,我想实现这样的效果
账号    年份     月份   开始指针  结束指针
0020   2013    11       100       200
0020   2013    12       200       380
0020   2014     1        380       500
判断账号,年份一样后,12的开始指针的11月份的结束指针,当账号一样,2014年1月份的开始指针就等于2013年12月份的结束指针,代码该怎么写呢,看帮助确实找不到解决方法,请老师们帮帮我
[此贴子已经被作者于2013-12-18 19:14:28编辑过]

--  作者:sloyy
--  发布时间:2013/12/18 20:07:00
--  
冗余数据太多,改下数据库吧

账号    年份     月份         读数
0020   2013    10             100
0020   2013    11             200
0020   2013    12             380
0020   2014     1              500

这下会写了吧?

--  作者:sugus
--  发布时间:2013/12/18 20:12:00
--  
老师,数据库这么写的话,是简单。可是实际应用中需要这些数据的呢,需要体现出来抄写数据的图片点击可在新窗口打开查看
--  作者:sugus
--  发布时间:2013/12/18 20:14:00
--  
请老师们帮我想想办法啊图片点击可在新窗口打开查看
--  作者:逛逛
--  发布时间:2013/12/18 21:19:00
--  

1、按 账号、年、月 排序

2、再参照流水账的做法

 

不知道具体案例,凭想象写个代码,以供参考

 

Dim drs As List(of DataRow) = DataTables(表名).Select("", "账号, 年, 月")
For i As Integer = 1 To drs.Count - 1
    If drs(i)("账号") = drs(i - 1)("账号") Then
        drs(i)("开始指针") = drs(i-1)("结束指针")
    End If
Next

 

 

俺那临时列纯粹多余,所以又改了一下。

[此贴子已经被作者于2013-12-19 7:35:42编辑过]

--  作者:sugus
--  发布时间:2013/12/18 22:25:00
--  
非常感谢逛逛 就是这样的效果 非常感谢图片点击可在新窗口打开查看
--  作者:sloyy
--  发布时间:2013/12/18 23:31:00
--  

你这样设计数据库肯定会出问题的,太多不必要的数据,当你回头发现错了一个地方的时候,你就要改动几个地方.按我的设计你想想有那个数据是不可以读出来的?只是简单的加减法而已