为了账号安全,请及时绑定邮箱和手机立即绑定

sql 分组后 对应的组行之间 相减 求大侠帮忙

sql 分组后 对应的组行之间 相减 求大侠帮忙

梦里花落0921 2018-12-06 12:02:01
如图:   希望的是 分组后的 csValues 行 相减    最后结果  id  name  csID  csValues 1    张三     1     1 2   李四      2     -1    或者 分组后的对应的行 的最后一行 减去 开始第一行   对应的c#代码   var dataList = from item in dt.AsEnumerable().AsParallel() group item by item.Field("dyn_vehid") into m where m.Count() > 1 select new { dyn_vehid = m.Key, v_no = m.First().Field("v_no"), dyn_latitude = m.First().Field("dyn_latitude"), Dyn_Longitude = m.First().Field("Dyn_Longitude"), C_EnterpriseName = m.First().Field("C_EnterpriseName"), dyn_Time = "".TimeDiffMinute(m.First().Field("dyn_Time").ToString(), m.Last().Field("dyn_Time").ToString()) }; 求改成sql ? 谢谢    sql 测试数据语句  USE csDemo select * from csDemo CREATE table csTb( id int , name varchar(20), csID int , csValues int ) insert into csTb values(1,'张三',1,1) insert into csTb values(2,'张三',1,2) insert into csTb values(3,'李四',2,3) insert into csTb values(4,'李四',2,4) insert into csTb values(5,'李四',2,6) insert into csTb values(6,'王无',3,7) SELECT * FROM CsTB where csID IN( select csID from csTB group by csID HAVING COUNT(*)>1 )
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

select name,csID,sum(csValues)*-1+2*max(csValues) from csTb group by name,csID having count(1)>1
查看完整回答
反对 回复 2018-12-09
  • 1 回答
  • 0 关注
  • 427 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信