解决方案 »
- 删除控件求教
- 用控件上传文件应用的是哪种协议?http还是ftp?
- 如何用ICSharpCode做出自解压的zip呢
- 静态构造方法调用问题
- WinForms 里面 获取 dataGridView 数据
- 怎么我现在打开“我参与的问题”、“我的问题”、“我得分的问题”等都是导向“社区”呢?
- 急,为什么用tcpclient发送数据只能接受一次?
- C# UDP通信 大数据情况下丢包
- 请教一个简单的数据更新问题?
- 关于Socket、WebService与SOAP的问题
- 使用NuGet,点击Add library package Reference按钮报“the project '' is unspported”,怎么解决?
- 怎样完整备份sql数据库的数据文件和日志文件?
参数1 就是一个变量名称的代名词。
Spleed_Class3 意思就是说 Class为3的Spleed的值 ,有一个Class字段 在图中
根据上述描述 最终的结果应该是两条数据,根据Plan来区分的 现在只有0,1可能会有0,1,2等.
然后最终结果Plan 参数1 参数2 参数3
0 ... .... ....
1 .... .... ...
我知道的思路是 首先应该是像SQL那样根据Plan Group by一下 然后根据三个参数的公式进行计算不好意思 不知道描述够不够清楚如果lambad表达式实现不了 我就考虑其他方式
当Lane=1的时候,返回Class为3的 Speed的值+Class为4的Speed的值吧?假设把数据都放在一个叫A的二维结构体里面了。
试着用代码描述一下你的问题,是不是下面这样的啊?
From lane in (from m in A Select m.Lane Distinct)
Select plan=lane,
参数1=if(lane=0, 一个算术式, 0),
参数2=if(lane=1, (From m in A where m.Lane=lane and (m.Class=3 or m.Class=4) Select m.Speed).Sum(), 0),
参数3=if(lane=2, (From m in A where m.Lane=lane Select m.Occu).Max(), 0)
同样的Lane1也是的。有多少个不同的Lane就计算多少条数据。然后根据公式 Lane0的参数1就是等于根据图和公式,那就是(0*0+0*0)/(0+0)
Lane1的参数1就是根据图和公式,那就是(-50*4+-50*4)/(4+4)speed_Class3 * volume_Class3 + speed_Class4 * volume_Class4这个公式的意思是 Speed字段的Class为3和4的值.你的那个逻辑理解错了
speed_Class3 * volume_Class3 + speed_Class4 * volume_Class4
select Sum(a.speed*a.volume)/Sum(volume) as 参数1,Sum(volume) as 参数2,取最大的Occu值 as参数3 from table a Group by Lane SQL来表现的大概就是这个意思