SQL Server 中如何根据输入一个年份得到十二个月每个月的总金额

Microsoft SQL Server Management Studio 18 中如何根据输入一个年份得到十二个月每个月的总金额(单价*数量)以及年度汇总

表结构是,FDATE(datetime)时间,FQTY(VARCHAR(255))数量,FPRICE(VARCHAR(255))单价,

就是现在我根据输入的一个时间年份,然后算出这一年中的十二个月每个月的总金额,以及一个年度汇总(单价*数量)

select datepart(mm, fdate) month, 
    sum(cast(fqty as float) * cast(fprice as float)) subtotal
from table_name -- 你的表名
where datepart(yy, fdate) = '你的年份'
group by rollup(datepart(mm, fdate)) -- rollup 添加汇总行

 

select datepart(mm, fdate) month, 
    sum(cast(fqty as float) * cast(fprice as float)) subtotal
from table_name -- 你的表名
where datepart(yy, fdate) = '你的年份'
group by rollup(datepart(mm, fdate)) -- rollup 添加汇总行

 

select datepart(mm, fdate) month, 
    sum(cast(fqty as float) * cast(fprice as float)) subtotal
from table_name -- 你的表名
where datepart(yy, fdate) = '你的年份'
group by rollup(datepart(mm, fdate)) -- rollup 添加汇总行

 

就是他查询的结果是行的,怎么把它变成列,一列一列的显示每个月的,像这样的

语句这样写,但是这样只能是查询出订单中的年份的,如果我要查询随时输入一个年份,就查询这个年份的十二个月的数据,没有就0,用存储过程的话,他只有你输入的哪一个月份的数据,其他月份没有,该咋整