实体到Linq左连接+;分组+;总和
SQL查询(执行计划成本=0.0127553) C# 结果SQL非常大(执行计划成本=0.0199849) 帮助请编写正确的linq代码。实体到Linq左连接+;分组+;总和,linq,join,entity,sum,Linq,Join,Entity,Sum,SQL查询(执行计划成本=0.0127553) C# 结果SQL非常大(执行计划成本=0.0199849) 帮助请编写正确的linq代码。 我的SQL执行计划成本=0.0127553。 Linq SQL执行计划成本=0.0199849。 21+10记录上的DIFF=00072296。有时您无法发出更好的SQL。但是,您可以编写简单的旧T-SQL并以多种方式调用它:自定义的DataContext公开为IQueryable的表值UDF就是它们。有时您无法发出更好的SQL。但是,您可以编写简单的旧T-
我的SQL执行计划成本=0.0127553。
Linq SQL执行计划成本=0.0199849。
21+10记录上的DIFF=00072296。有时您无法发出更好的SQL。但是,您可以编写简单的旧T-SQL并以多种方式调用它:自定义的
DataContext
公开为IQueryable的表值UDF就是它们。有时您无法发出更好的SQL。但是,您可以编写简单的旧T-SQL并以多种方式调用它:一个表值的UDF,您定制的DataContext
可能会将其公开为IQueryable
,您只是忘记了这个问题。(哦,我的SQL太胖了)你为什么需要帮助?你的结果有什么问题吗?这些结果是秒数吗?你只是忘记了这个问题。(哦,我的SQL太胖了)你为什么需要帮助?你的结果有问题吗?这些结果是以秒为单位的吗?
SELECT
SUM(DATEDIFF(second, DTActivate, DTDeActivate)) AS Seconds,
AA.ID AS AAID,
AA.WorkStation
FROM
DbLogItems I
INNER JOIN DbApplicationArguments AA ON
AA.Id = I.ApplicationArgument_ID
GROUP BY
AA.ID,
AA.WorkStation
var q = from items in db.LogItem
join aa in db.ApplicationArguments on
items.ApplicationArgument.ID equals aa.ID
into aaGroup
from aaJoin in aaGroup.DefaultIfEmpty()
group items by new
{
aaJoin.ID,
aaJoin.WorkStation
} into grouping
select new
{
Seconds = grouping.Sum(x => SqlFunctions.DateDiff("second", x.DTActivate, x.DTDeActivate)),
grouping.Key.ID,
grouping.Key.WorkStation
};
SELECT
1 AS [C1],
[GroupBy1].[A1] AS [C2],
[GroupBy1].[K1] AS [ID],
[GroupBy1].[K2] AS [WorkStation]
FROM
(
SELECT
[Join1].[K1] AS [K1],
[Join1].[K2] AS [K2],
SUM([Join1].[A1]) AS [A1]
FROM
(
SELECT
[Extent2].[ID] AS [K1],
[Extent2].[WorkStation] AS [K2],
DATEDIFF(second, [Extent1].[DTActivate], [Extent1].[DTDeActivate]) AS [A1]
FROM
[dbo].[DbLogItems] AS [Extent1]
LEFT OUTER JOIN [dbo].[DbApplicationArguments] AS [Extent2]
ON [Extent1].[ApplicationArgument_ID] = [Extent2].[ID]
) AS [Join1]
GROUP BY
[K1],
[K2]
) AS [GroupBy1]