兄弟们,想从一个表里提取一些字段,做点处理,生成一个新报表。可惜本人数据库操作语言不熟,遇到一点问题,大家帮帮忙啊!
具体情况是这样的:
原始表:dailyRunInfo 日运行记录表
字段:
CarID varchar 20 0      汽车编号(每)
TJYear int 4 1      统计年份
TJMonth int 4 1      统计月份
   TJDate  datetime 8             日期
RepairFlag varchar 5      是否维修
RepairContent varchar 50     维修内容
RunToday int 4      当日运行公里数
RunTotal int 4      累计运行公里数
DXNum int 4 1      大修次数(第几次大修)
DXDate datetime 8      上次大修日期
DXDistance int 4      自上次大修累计运行公里
XXNum int 4 1      小修次数(第几次小修)
XXDate datetime 8      上次小修日期
  XXDistance int 4      自上次小修累计运行公里
这个表主要存储不同ID的汽车每天的运行记录
现在我想在每月末生成一个月报表,统计不同汽车在该月的运行总记录(一辆汽车只对应一条),主要统计字段如下:汽车编号  统计年月  当月运行公里数  累计运行公里数   本月最后一次大修日期   自最后一次大修累计运行公里  本月最后一次小修日期  自最后一次小修累计运行公里上述字段都能从 dailyRunInfo 表里统计出来,但想通过一次查询(输入年月)输出所有字段信息可能涉及到很多数据库的综合操作,小弟实在是想不出来,还得请各位大虾帮忙啊,重分报答!!

解决方案 »

  1.   

    select count(字段),...from dailyRunInfo where CarID in (select distint CarID from dailyRunInfo) and 时间<=.. and 时间>=..
      

  2.   

    select sum(RunToday),CarID from  dailyRunInfo group by CarID
      

  3.   

    select sum(RunToday),CarID from  dailyRunInfo where TJMonth = ?? group by CarID
      

  4.   

    Group by 学到了!
    见笑了!
    关键是后面几个字段,有办法没,各位
      

  5.   

    “建立临时表,使用存储过程完成”
    不太会当月运行公里数可以用Sum(RunToday)
    累计运行公里数可以用Max(RunTotal)
    主要是下面几个字段怎么提取?
    本月最后一次大修日期   
    自最后一次大修累计运行公里 
    本月最后一次小修日期  
    自最后一次小修累计运行公里
      

  6.   

    最后一次大修日期(你得给个日期,@本月最后一天,算法很简单,下月第一天 -1 )
    max(大修日期)  from *** where 大修日期 < @本月最后一天
      

  7.   

    可以使用 MIS 常用的方法, 建一个最终要统计生产的目标固定表,然后在程序运行中, 每增加一条记录,将结果累加到 目标表, 比如使用触发器.最后要结果的时候只要 Select  一下目标表.