本帖最后由 allen8497 于 2011-05-04 11:11:14 编辑

解决方案 »

  1.   

    select concat(year(B.日期),monty(B.日期),A.车辆编号,sum(B.修理费),sum(B.保养费),sum(总里程),sum(B.修理费)+sum(B.保养费)
    from 出车信息 A,车辆其他费用 B,车辆信息 C
    where A.车辆编号 = B.车辆编号 and A.车辆编号 = C.车辆编号
    group by concat(year(B.日期),monty(B.日期),A.车辆编号
      

  2.   


    你好,不能用where,因为没有记录匹配的话,车辆也要全部显示出来。大概要这个效果:
    车辆/车牌      修理/保养费  当月里程  单价   里程费用(里程X单价)  汽油费  合计 
    现代/鄂A5H570      0      67.00   1.60   107.2             200.00  307.2 
    日产/鄂A28U15      200     0.00   2.10     0                0.00   200 
    本田/鄂A18R56      0       0.00   2.10     0                0.00   0 
      

  3.   

    SELECT a.carName, a.carID, a.carPrice, 
    FROM t_carInfo a
    LEFT JOIN (
    SELECT carID, sum(distance)as 里程, sum(Fuel costs)as 加油费
    FROM t_carTurnout
    WHERE MONTH(sdate) =04 AND YEAR(sdate) =2011
    GROUP BY carID
    )b ON a.carID= b.carID
    LEFT JOIN (
    SELECT carID, sum(Repairs) as 修理费
    FROM t_carOther
    WHERE MONTH(sdate) =04 AND YEAR(sdate) =2011
    GROUP BY carID
    )c ON a.carID= c.carID我这么写怎么会报错呢?
      

  4.   

    SELECT a.carName, a.carID, a.carPrice, 
    FROM t_carInfo a
    LEFT JOIN (
    SELECT carID, sum(carDistance)as 里程, sum(fuelCosts)as 加油费
    FROM t_carTurnout
    WHERE MONTH(sdate) =04 AND YEAR(sdate) =2011
    GROUP BY carID
    )b ON a.carID= b.carID
    LEFT JOIN (
    SELECT carID, sum(Repairs) as 修理费
    FROM t_carOther
    WHERE MONTH(sdate) =04 AND YEAR(sdate) =2011
    GROUP BY carID
    )c ON a.carID= c.carID
    这么写为什么错呢? 不是中文的问题,写中文是大家看起来方便理解。
      

  5.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。