【发布时间】:2020-10-07 05:47:36
【问题描述】:
我有一张桌子
SELECT JM.jobNum+'.'+CONVERT(VARCHAR,TL.tlPhasenum) AS [COST CODE],EM.empnum+'‌' AS [EMPLOYEE NUMBER],TL.tlDateWorked AS [DATE],tl.tlOT,tl.tlStraightTime INTO #TempTable
FROM mqTimeReportingTimeLogs AS TL
INNER JOIN mqJobMaster AS JM ON TL.tlJobId=JM.jobId
INNER JOIN mqEmployeeMaster AS EM ON TL.tlEmployeeId=EM.empId
WHERE
TL.tlCompanyId in (select * from #TempCompanies)
AND (@weekending='' or tlWeekEnding=CONVERT(DATE,@weekending))
AND (@jobid=0 or TL.tlJobId=@jobid)
AND (@startdate='' or TL.tldateworked between convert(date,@startdate) and convert(date,@enddate))
下面的查询将行拆分为两个
SELECT * INTO #TempTable2
FROM (
SELECT [COST CODE],[EMPLOYEE NUMBER],[DATE],value as [Hours],col as [Time Type]
from #TempTable
CROSS APPLY
(
VALUES('1',tlStraightTime),('2',tlOT) --1:ST 2:OT
) C (COL, VALUE)
) SRC
现在我想在 linq 中实现同样的东西,如何在 LINQ 中使用这个逻辑
【问题讨论】:
-
也许我的SQL to LINQ Recipe 可能会帮助您翻译第一个查询。然后
CROSS APPLY可以作为from...from...select完成。 -
但是,我认为您无法在服务器端运行第二个查询,您必须先处理第一个查询,然后使用 LINQ to Objects。
标签: sql sql-server linq linq-to-sql