如图:
希望的是 分组后的 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
)
梦里花落0921
浏览 443回答 1
1回答
潇湘沐
select name,csID,sum(csValues)*-1+2*max(csValues) from csTb group by name,csID having count(1)>1