linq c#with group sum join [试图将sql查询转换为linq查询] [英] linq c# with group sum join [Trying to convert sql query to linq query]

查看:78
本文介绍了linq c#with group sum join [试图将sql查询转换为linq查询]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

选择app.Application_Category为appcat,

SUM(Total_Expected_Availability)为tot_exp_avl,

SUM(Planned_Outage)为tot_pld,

SUM( Unplanned_Outage)为tot_unpld,

SUM(Unplanned_Outage- Unplanned_SignOff)为tot_unpld_sgn,

app.MSL,

app.ESL,

(总和(Total_Expected_Availability-Planned_Outage-(Unplanned_Outage + Unplanned_SignOff))/ SUM(Total_Expected_Availability-Planned_Outage))* 100 perc_achd
来自App_Master_2 app的


内连接app.Application_Category上的Outage_Metrics outmet = outmet.Application_Category和app.Application_ID = outmet.Application_ID

其中outmet.Month ='9'和outmet.Year ='2013'

按app.Application_Category分组,app.MSL,app.ESL





i尝试这样但显示错误



maindashboardreport =(来自lMOutage_Metrics中的outMet

加入lstApp_M中的app aster_2

on outMet.Application_ID等于app.Application_ID

其中outMet.Application_Category == app.Application_Category && outMet.Month == monthValue && outMet.Year == yearValue

将app {app.Application_Category,app.MSL,app.ESL,outMet.Total_Expected_Availability,outMet.Planned_Outage,outMet.Unplanned_Outage,outMet.Unplanned_SignOff}分组应用到g

select新的
{

g.Key.Application_Category,

g.Sum(t => t.Total_Expected_Availability)。GetValueOrDefault(),

g.Sum(t => t.Planned_Outage).GetValueOrDefault(),

g.Sum(t => t.Unplanned_Outage)。GetValueOrDefault(),

(g.Sum(t => t.Unplanned_Outage).GetValueOrDefault() - g.Sum(t => t.Unplanned_SignOff).GetValueOrDefault( )),

g.Key.MSL.GetValueOrDefault(),

g.Key.ESL.GetValueOrDefault()

})。Distinct ()。ToList();



请帮我解决这个问题..

Select app.Application_Category as appcat,
SUM(Total_Expected_Availability) as tot_exp_avl,
SUM(Planned_Outage) as tot_pld,
SUM(Unplanned_Outage) as tot_unpld,
SUM(Unplanned_Outage- Unplanned_SignOff) as tot_unpld_sgn,
app.MSL,
app.ESL,
(Sum(Total_Expected_Availability-Planned_Outage-(Unplanned_Outage+Unplanned_SignOff))/SUM(Total_Expected_Availability-Planned_Outage))*100 as perc_achd
from App_Master_2 app
inner join Outage_Metrics outmet on app.Application_Category=outmet.Application_Category and app.Application_ID=outmet.Application_ID
where outmet.Month='9' and outmet.Year='2013'
Group by app.Application_Category,app.MSL,app.ESL


i tried like this but it shows error

maindashboardreport = (from outMet in lstOutage_Metrics
join app in lstApp_Master_2
on outMet.Application_ID equals app.Application_ID
where outMet.Application_Category == app.Application_Category && outMet.Month == monthValue && outMet.Year == yearValue
group app by new { app.Application_Category, app.MSL, app.ESL, outMet.Total_Expected_Availability, outMet.Planned_Outage, outMet.Unplanned_Outage, outMet.Unplanned_SignOff } into g
select new
{
g.Key.Application_Category,
g.Sum(t => t.Total_Expected_Availability).GetValueOrDefault(),
g.Sum(t => t.Planned_Outage).GetValueOrDefault(),
g.Sum(t => t.Unplanned_Outage).GetValueOrDefault(),
(g.Sum(t => t.Unplanned_Outage).GetValueOrDefault() - g.Sum(t => t.Unplanned_SignOff).GetValueOrDefault()),
g.Key.MSL.GetValueOrDefault(),
g.Key.ESL.GetValueOrDefault()
}).Distinct().ToList();

pls help me to fix this..

推荐答案

示例Linq查询使用Join,group,Sum。



var maindashboardreport =(来自lMOutage_Metrics中的outMet

加入lstApp_Master_2中的应用程序

on outMet.Application_ID等于app.Application_ID

其中outMet.Application_Category == app.Application_Category && outMet.Month == monthValue && outMet.Year == yearValue

group new

{

app.Application_Category,

app.MSL,

app.ESL,

outMet.Total_Expected_Availability,

outMet.Planned_Outage,

outMet.Unplanned_Outage,

outMet.Unplanned_SignOff

}新的

{

app.Application_Category,

app.MSL,

app.ESL

}进入g


选择新的Application_Avail

{

Application_Category = g.Key.Application_Category,

tot_exp_avl = g.Sum(t => t.Total_Expected_Availability)。GetValueOrDefault(),// sum(t => t.total_expected_availability).getvalueordefault(),

tot_pld = g.Sum(t => t.Planned_Outage).GetValueOrDefault (),

tot_unpld = g.Sum(t => t.Unplanned_Outage).GetValueOrDefault(),

tot_unpld_sgn =(g.Sum(t => t .Unplanned_Outage)。GetValueOrDefault() - g.Sum(t => t.Unplanned_SignOff)。GetValueOrDefault()),

MSL = g.Key.MSL.GetValueOrDefault(),

ESL = g.Key.ESL.GetValueOrDefault()

})。Distinct()。ToList();
sample Linq query which using Join, group, Sum.

var maindashboardreport = (from outMet in lstOutage_Metrics
join app in lstApp_Master_2
on outMet.Application_ID equals app.Application_ID
where outMet.Application_Category == app.Application_Category && outMet.Month == monthValue && outMet.Year == yearValue
group new
{
app.Application_Category,
app.MSL,
app.ESL,
outMet.Total_Expected_Availability,
outMet.Planned_Outage,
outMet.Unplanned_Outage,
outMet.Unplanned_SignOff
} by new
{
app.Application_Category,
app.MSL,
app.ESL
} into g

select new Application_Avail
{
Application_Category = g.Key.Application_Category,
tot_exp_avl = g.Sum(t => t.Total_Expected_Availability).GetValueOrDefault(),// sum(t => t.total_expected_availability).getvalueordefault(),
tot_pld = g.Sum(t => t.Planned_Outage).GetValueOrDefault(),
tot_unpld = g.Sum(t => t.Unplanned_Outage).GetValueOrDefault(),
tot_unpld_sgn = (g.Sum(t => t.Unplanned_Outage).GetValueOrDefault() - g.Sum(t => t.Unplanned_SignOff).GetValueOrDefault()),
MSL = g.Key.MSL.GetValueOrDefault(),
ESL = g.Key.ESL.GetValueOrDefault()
}).Distinct().ToList();


select * from PersonInfo
where code
in
(select a.Code from PersonInfo as a ,TradeElamieh as b
where a.Code=b.person1 and b.Actual=1 and (a.Investor_ID like'1338%' or a.Investor_ID like'1339%')
 and b.date>'2012-01-01' and a.Investor_ID IS NOT NULL)

这篇关于linq c#with group sum join [试图将sql查询转换为linq查询]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆