Select * From
(SELECT convert(varchar,SUM(distance))
As total_distance, DAY(start_time) Days
FROM t1
Where id=6314
And start_time
Between '2018-02-01 18:30:00'
And '2018-02-09 18:00:00'
GROUP BY DAY(start_time)
) d
pivot
(Max(total_distance)
For Days in ([3],[4],[5],[6],[7],[8],[9])
) piv;
results-
3 4 5 6 7 8 9
0 0 50.2 44.32 42.34 43.38 41.32
我想要这些值的和列以及这个结果,如: -
sum 3 4 5 6 7 8 9
221.56 0 0 50.2 44.32 42.34 43.38 41.32
将以下内容添加到查询的结果集中:CROSS APPLY
部分。
;WITH t ([3] ,[4] ,[5] ,[6] , [7], [8] ,[9]) as
(
SELECT 0 , 0 , 50.2 , 44.32 , 42.34 , 43.38 , 41.32
)
SELECT *
FROM t
CROSS APPLY
(SELECT SUM(x.Val)
FROM
(
VALUES ([3]),([4]),([5]),([6]),([7]),([8]),([9])
) X (VAL)
) P(SVal)
这是您输入的查询:
;WITH Pvt as
(
select * from
(SELECT convert(varchar,SUM(distance)) as total_distance, DAY(start_time) Days
FROM t1
where id=6314 and start_time between '2018-02-01 18:30:00' and '2018-02-09 18:00:00'
GROUP BY DAY(start_time)
) d
pivot
(max(total_distance)
for Days in ([3],[4],[5],[6],[7],[8],[9])
) piv
)
SELECT *
FROM Pvt
CROSS APPLY
(SELECT SUM(x.Val)
FROM
(
VALUES ([3]),([4]),([5]),([6]),([7]),([8]),([9])
) X (VAL)
) P(SVal)