如图:
希望的是 分组后的 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<int>("dyn_vehid") into m where m.Count() > 1 select new { dyn_vehid = m.Key, v_no = m.First().Field<string>("v_no"), dyn_latitude = m.First().Field<decimal>("dyn_latitude"), Dyn_Longitude = m.First().Field<decimal>("Dyn_Longitude"), C_EnterpriseName = m.First().Field<string>("C_EnterpriseName"), dyn_Time = "".TimeDiffMinute(m.First().Field<DateTime>("dyn_Time").ToString(), m.Last().Field<DateTime>("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 )
你改名字了啊 博客?
晚上接着你的完善了下
with temp as ( select csID, sum(csValues)*-1+2*max(csValues) as cssp from csTb group by csID having count(1)>1 ) select t1.* ,t2.* from temp t1 left join ( select distinct csID,name from csTB) t2 on t1.csId=t2.csId
@s_p: 不太明白你这个id是需要怎么取。
@achu.me: 那个用了关联查询 毕竟还有显示其他自动 还不睡觉啊
@achu.me:这里没取id 是csid 那个id 取不出 分组后 id无法 确定是哪条也没有意思 准备睡觉了