【问题标题】:recursive common table expression with a view带有视图的递归公用表表达式
【发布时间】:2015-03-30 10:35:15
【问题描述】:

这就是我想要做的:

Create view vDetailsCommunications as
WITH Tickets AS
(
    SELECT  CallLog.CallID
          , CallLog.RecvdDate
          , Detail.ReqEffDate
          , Asgnmnt.DateAcknow
          , Asgnmnt.DateResolv
          , Asgnmnt.Assignee
          , Asgnmnt.GroupName
          , CallLog.CallType
          , Detail.ActionReq
          , Detail.action_type
          , (SELECT [Days] FROM NonWorkingDays(Asgnmnt.DateAcknow, Asgnmnt.DateResolv) AS NonWorkingDays_1) AS [Working Days]
          , DATEDIFF(day, Asgnmnt.DateAcknow, Asgnmnt.DateResolv) AS [Days]
          , (ROW_NUMBER() OVER(PARTITION BY Asgnmnt.CallID ORDER BY Asgnmnt.DateAcknow)) AS [Row Number]
    FROM    CallLog 
    INNER JOIN  Detail ON CallLog.CallID = Detail.CallID 
    INNER JOIN  Asgnmnt ON CallLog.CallID = Asgnmnt.CallID
    WHERE (CallLog.CallType = 'ID Request-PAF')
      AND (Detail.ActionReq = 'Hiring Action')
      AND (DATEDIFF (DAY, Asgnmnt.DateAcknow, Asgnmnt.DateResolv) BETWEEN 0 AND 99)
      AND (Asgnmnt.GroupName IN ('ID Admin', 'Systems Admin'))
      AND (Detail.action_type IN ('Applicant Hire', 'Re-Hire'))
)
SELECT *
FROM Tickets
WHERE [Row Number] = 1

【问题讨论】:

  • 请添加问题或错误,并修改您的帖子以使用代码格式。
  • 现在我们可以阅读查询...这里有问题吗?
  • 这里看不到任何递归,也不是问题:S
  • 它不允许我创建视图。
  • CTE 类似于临时表和表变量,不允许出现在视图中。

标签: sql sql-server view with-statement


【解决方案1】:

你需要在这个函数中定义一个模式:NonWorkingDays。

例如:

SELECT [Days] FROM dbo.NonWorkingDays(Asgnmnt.DateAcknow, Asgnmnt.DateResolv) 

【讨论】:

  • 如果答案有助于将答案设置为正确。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2019-11-04
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
相关资源
最近更新 更多