查询语句:
    SELECT 路线名称, CONVERT(numeric(9, 1), CONVERT(numeric(9, 1), COUNT(流水号)) / 2) 
      AS 班次, isnull(SUM(票数), 0) + isnull
          ((SELECT SUM(人次)
          FROM 定点售票
          WHERE 定点售票.路线名称 = 车辆行驶记录_v.路线名称 AND 
                日期 >= '2005-05-01' AND 日期 <= '2005-05-07'), 0) AS 人数, 
      isnull(SUM(营收), 0) + isnull
          ((SELECT SUM(金额)
          FROM 定点售票
          WHERE 定点售票.路线名称 = 车辆行驶记录_v.路线名称 AND 
                日期 >= '2005-05-01' AND 日期 <= '2005-05-07'), 0) AS 金额
FROM 车辆行驶记录_v
WHERE 日期 >= '2005-05-01' AND 日期 <= '2005-05-07'
GROUP BY 路线名称
UNION ALL
SELECT '其它收入' AS 路线名称, NULL, NULL, SUM(金额) AS 金额
FROM 其它收入
WHERE 日期 >= '2005-05-01' AND 日期 <= '2005-05-07'
UNION ALL
SELECT '总计' AS 路线名称, SUM(班次) AS 班次, SUM(人数) AS 人数, SUM(金额) 
      AS 金额
FROM (SELECT 路线名称, CONVERT(numeric(9, 1), CONVERT(numeric(9, 1), 
              COUNT(流水号)) / 2) AS 班次, isnull(SUM(票数), 0) + isnull
                  ((SELECT SUM(人次)
                  FROM 定点售票
                  WHERE 定点售票.路线名称 = 车辆行驶记录_v.路线名称 AND 
                        日期 >= '2005-05-01' AND 日期 <= '2005-05-07'), 0) AS 人数, 
              isnull(SUM(营收), 0) + isnull
                  ((SELECT SUM(金额)
                  FROM 定点售票
                  WHERE 定点售票.路线名称 = 车辆行驶记录_v.路线名称 AND 
                        日期 >= '2005-05-01' AND 日期 <= '2005-05-07'), 0) AS 金额
        FROM 车辆行驶记录_v
        WHERE 日期 >= '2005-05-01' AND 日期 <= '2005-05-07'
        GROUP BY 路线名称
        UNION ALL
        SELECT '其它收入' AS 路线名称, NULL, NULL, SUM(金额) AS 金额
        FROM 其它收入
        WHERE 日期 >= '2005-05-01' AND 日期 <= '2005-05-07') M有时可以,有时不行,数据量大概有10条记录,是不是应为用了太多的联合语句还是别的什么原因呢?各位帮忙看看,多谢了!!!