读书人

C#winform 数据库操作

发布时间: 2012-01-31 21:28:41 作者: rapoo

C#winform 数据库操作,高分求教!!
兄弟们,想从一个表里提取一些字段,做点处理,生成一个新报表。可惜本人数据库操作语言不熟,遇到一点问题,大家帮帮忙啊!
具体情况是这样的:
原始表:dailyRunInfo 日运行记录表
字段:
CarIDvarchar200 汽车编号(每)
TJYearint41 统计年份
TJMonthint41 统计月份
TJDate datetime 8 日期
RepairFlagvarchar5 是否维修
RepairContentvarchar50 维修内容
RunTodayint4 当日运行公里数
RunTotalint4 累计运行公里数
DXNumint41 大修次数(第几次大修)
DXDatedatetime8 上次大修日期
DXDistanceint4 自上次大修累计运行公里
XXNumint41 小修次数(第几次小修)
XXDatedatetime8 上次小修日期
XXDistanceint4 自上次小修累计运行公里
这个表主要存储不同ID的汽车每天的运行记录
现在我想在每月末生成一个月报表,统计不同汽车在该月的运行总记录(一辆汽车只对应一条),主要统计字段如下:

汽车编号 统计年月 当月运行公里数 累计运行公里数 本月最后一次大修日期 自最后一次大修累计运行公里 本月最后一次小修日期 自最后一次小修累计运行公里

上述字段都能从 dailyRunInfo 表里统计出来,但想通过一次查询(输入年月)输出所有字段信息可能涉及到很多数据库的综合操作,小弟实在是想不出来,还得请各位大虾帮忙啊,

重分报答!!

[解决办法]
select count(字段),...from dailyRunInfo where CarID in (select distint CarID from dailyRunInfo) and 时间 <=.. and 时间> =..
[解决办法]
1、按一个月的时间把记录从日报表里取出来
2、在程序中把数据进行统计,插入月表
[解决办法]
select sum(RunToday),CarID from dailyRunInfo where TJMonth = ?? group by CarID
[解决办法]
可以用下临时表
[解决办法]
建立临时表,使用存储过程完成
[解决办法]
最后一次大修日期(你得给个日期,@本月最后一天,算法很简单,下月第一天 -1 )
max(大修日期) from *** where 大修日期 < @本月最后一天
[解决办法]
分批来,这样最简单.
看重结果,能实就好.
[解决办法]
可以使用 MIS 常用的方法, 建一个最终要统计生产的目标固定表,

然后在程序运行中, 每增加一条记录,将结果累加到 目标表, 比如使用触发器.

最后要结果的时候只要 Select 一下目标表.

读书人网 >C#

热点推荐