我现在有一个出租车载客的信息记录表,记录了所有车辆的所有载客记录,包括开始时间结束时间,金额等等。
现在,我要按下图所示的表格样式进行统计,有哪位大神能帮帮我?

------解决思路----------------------
--定义价格范围表
Declare @TmpPrice Table(
RID Int,
Note NVarchar(100),
MinPrice Decimal(18,4),
MaxPrice Decimal(18,4))
--写入价格范围数据(测试只分了5档)
Insert Into @TmpPrice
Select 1,N'0-50档',0,50
Union
Select 2,N'50-100档',50,100
Union
Select 3,N'100-150档',100,150
Union
Select 4,N'150-200档',150,200
Union
Select 5,N'200以上档',200,9999
--定义业务明细表
Declare @TmpData Table(
RecID Int,
Price Decimal(18,4))
--写入测试数据
Insert Into @TmpData
Select 1,15
Union
Select 2,100
Union
Select 3,500
--读取明细数据,并按档次分组统计
Select B.RID,B.Note,COUNT(1),SUM(A.Price)
From @TmpData A
Inner Join @TmpPrice B On A.Price > B.MinPrice And A.Price <= B.MaxPrice
Group By B.RID,B.Note
Order By B.RID
------解决思路----------------------
WITH 分段表(No,m1,m2,memo) AS (
SELECT 1,10,20,N'10-20元' UNION ALL
SELECT 1,20,30,N'20-30元' UNION ALL
...
SELECT 1,200,100000000,N'200元以上'
)
SELECT s.memo,
t.c,
t.m
FROM (
SELECT r.No,
COUNT(r.金额) c,
ROUND(SUM(r.金额)/10000.0,0) m
FROM 分段表 s
LEFT JOIN 记录表 r
ON s.m1 <= r.金额
AND r.金额 < s.m2
GROUP BY S.No
) t
JOIN 分段表 s
ON s.No = t.No
ORDER BY t.No
------解决思路----------------------
SELECT SUM(A.TotalMoney),COUNT(A.NewType) FROM
(SELECT TotalMoney,
CASE WHEN TotalMoney <10 THEN 1
WHEN TotalMoney >=10 AND TotalMoney <20 THEN 2
WHEN TotalMoney >=20 AND TotalMoney <30 THEN 3
WHEN TotalMoney >=30 AND TotalMoney <50 THEN 4
WHEN TotalMoney >=50 AND TotalMoney <100 THEN 5
WHEN TotalMoney >=100 AND TotalMoney <200 THEN 6
WHEN TotalMoney > 200 THEN 7
ELSE NULL END NewType
FROM [HQGPS_V4_OBD_Test].[dbo].[vt_taxi_FeeInfo]) A
GROUP BY A.NewType