下面SQL行转列怎么多加一列总计 返回
要生成的SQL语句
SELECT ourpivot.hour, ourpivot.c3, ourpivot.c2, ourpivot.c1, ISNULL(c1, 0) + ISNULL(c2, 0) + ISNULL(c3, 0) as total
FROM
(
SELECT DATEPART(hour, B.createTime) hour ,t2. PayName, sum(amount) money
FROM t1 B
LEFT JOIN t2 t2
ON b.subtype = T2.subtype
GROUP BY PayName ,DATEPART(hour, B.createTime)
) t
pivot (sum(money) for t.PayName in (c1,c2,c3)) as ourpivot
order by hour
2. orm表达式
var t1 = PayRepository.Queryable()
.LeftJoin<PayChannel>((pay, t2) => pay.Subtype == t2.Subtype)
.Select((pay, t2) => new
{
PayName = t2.PayName,
Amount = pay.Amount,
hour = pay.CreateTime.Hour
})
.MergeTable()
.GroupBy(it => new { it.hour, it.PayName })
.Select(it => new
{
it.PayName,
amount = SqlFunc.AggregateSum(it.Amount),
it.hour,
}).OrderBy(it =>it.hour);
var result = t1
.ToPivotJson(x => x.PayName, x => x.hour, it => it.Count() > 0 ? it.Sum(x => x.amount) : 0);
无法实现自动添加的列total 查询出来
热忱回答(1)
-
fate sta VIP0
2023/2/15ToPivotJson 里面可以 new {it.name,it.name2} 这样可以加列
0 回复