首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SSMS上获取TFS工作项

在SSMS上获取TFS工作项
EN

Stack Overflow用户
提问于 2018-06-21 22:51:01
回答 1查看 219关注 0票数 0

我需要一些帮助来模拟TFS查询。我尝试编写了以下SQL查询,但无法获得匹配的数据:

代码语言:javascript
运行
复制
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

IF OBJECT_ID('tempdb.dbo.#LastRecord') IS NOT NULL DROP TABLE #LastRecord 
SELECT System_Id
       , LastUpdatedDateTime = MAX(LastUpdatedDateTime) 
INTO #LastRecord
FROM [dimWorkItem]
GROUP BY System_Id 


SELECT distinct ID = w.System_Id
--Cannot find Department
       , Department = '?'
       , w.TeamProjectSK
       , RequestedByUser = w.Custom_RequestedBy
       , Title = w.System_Title  
       , [Priority] = w.Microsoft_VSTS_Common_Priority
       , Activity = w.Microsoft_VSTS_Common_Activity
       , da.AreaPath
       , [State] = w.System_State
       , Reason = w.System_Reason
       , ClosedDate = w.Microsoft_VSTS_Common_ClosedDate
       , ActivatedDate = Microsoft_VSTS_Common_ActivatedDate
       , DevHours = Custom_DevHours
       , CreatedDate = w.System_CreatedDate 
       , AssignedTo = dp.Name
       , [Week] = CASE WHEN (w.System_State = 'Active' OR Microsoft_VSTS_Common_ClosedDate >= dateadd(d,-7,CONVERT(Date,getdate(),1))) THEN 'Current' 
                       WHEN (w.System_State = 'Active' OR Microsoft_VSTS_Common_ClosedDate >= dateadd(d,-14,CONVERT(Date,getdate(),1)) AND Microsoft_VSTS_Common_ClosedDate < dateadd(d,-7,CONVERT(Date,getdate(),1))) THEN 'Last' 
                       ELSE 'Previous' END
       , TSRNumber = Custom_TSRNumber
FROM 

(Select * from (select *, rn = row_number() over(partition by w1.System_Id, w1.TeamProjectSK, w1.System_State order by w1.System_Rev desc)
      from dbo.DimWorkItem w1) d where rn = 1) w
JOIN #LastRecord l ON w.System_Id = l.System_Id AND w.LastUpdatedDateTime = l.LastUpdatedDateTime
LEFT OUTER JOIN dbo.DimArea da ON w.AreaSK = da.AreaSK
LEFT OUTER JOIN DimPerson dp ON w.System_AssignedTo__PersonSK = dp.PersonSK
WHERE System_WorkItemType = 'Task'
AND da.AreaPath like '\LOS\Reporting%'
AND w.Microsoft_VSTS_Common_Priority < 4 

另外,如果有人知道我在哪里可以找到部门字段,因为我不确定它是否是一个自定义字段。

Server 2014: 12.0

TFS: 12.0

视听演播室专业2015: 14.0

提前感谢您的建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 23:14:10

我找到了一个解决方案,尽管仍然找不到该部字段:

代码语言:javascript
运行
复制
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

IF OBJECT_ID('tempdb.dbo.#LastRecord') IS NOT NULL DROP TABLE #LastRecord 

SELECT System_Id, LastChangedDate = MAX(System_ChangedDate) 
INTO #LastRecord
FROM [dimWorkItem]
GROUP BY System_Id 

DECLARE @FromDateWeek DATE 
DECLARE @FromDateTwoWeek DATE 
SET @FromDateWeek = dateadd(d,-7,CONVERT(Date,getdate(),1))
SET @FromDateTwoWeek = dateadd(d,-14,CONVERT(Date,getdate(),1))
--SELECT @FromDate

SELECT      ID = w.System_Id
    --Cannot find Department
          , Department = '?'
          , w.TeamProjectSK
          , RequestedByUser = w.Custom_RequestedBy
          , Title = w.System_Title  
          , [Priority] = w.Microsoft_VSTS_Common_Priority
          , Activity = w.Microsoft_VSTS_Common_Activity
          , da.AreaPath
          , [State] = w.System_State
          , Reason = w.System_Reason
          , ClosedDate = w.Microsoft_VSTS_Common_ClosedDate
          , ActivatedDate = Microsoft_VSTS_Common_ActivatedDate
          , DevHours = Custom_DevHours
          , CreatedDate = w.System_CreatedDate 
          , AssignedTo = dp.Name
          , [Week] = CASE WHEN  w.Microsoft_VSTS_Common_ClosedDate >= @FromDateWeek OR w.System_State = 'Active' THEN 'Current' 
                          WHEN (w.Microsoft_VSTS_Common_ClosedDate >= @FromDateTwoWeek AND w.Microsoft_VSTS_Common_ClosedDate < @FromDateWeek) 
                                OR w.Microsoft_VSTS_Common_ClosedDate < @FromDateWeek THEN 'Last' 
                          ELSE 'Previous' END
FROM [dimWorkItem] w 
JOIN #LastRecord l ON w.System_Id = l.System_Id AND w.System_ChangedDate = l.LastChangedDate
LEFT OUTER JOIN DimPerson dp ON w.System_AssignedTo__PersonSK = dp.PersonSK
LEFT OUTER JOIN dbo.DimArea da ON w.AreaSK = da.AreaSK

WHERE 
       da.AreaPath LIKE '\LOS\Reporting%'
       AND System_WorkItemType = 'Task'
       AND (Microsoft_VSTS_Common_ClosedDate >= @FromDateTwoWeek
              OR w.System_State = 'Active')
       AND ISNULL(Microsoft_VSTS_Common_Priority,0) < 4
       AND w.System_Reason <> 'Obsolete'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50978440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档