【问题标题】:Select Query for Days of the Week选择查询星期几
【发布时间】:2015-01-30 02:03:25
【问题描述】:

当使用以下查询返回一周中的几天时,我只想显示特定的一天(例如星期一)并计算返回“星期一”的次数。

     SELECT
      w.[Id]
    , w.[Name]
    , [Status]
    , [InitiatorPersonAliasId]
    , p.[FirstName]
    , p.[LastName]
    , ( SELECT TOP 1 [Value]
        FROM [AttributeValue] av
        INNER JOIN [Attribute] a ON a.[Id] = av.[AttributeId] 
        AND a.[EntityTypeId] = 113 
        AND a.[EntityTypeQualifierColumn] = 'WorkflowTypeId' 
        AND a.[EntityTypeQualifierValue] = w.[WorkflowTypeId]
        WHERE [EntityId] = w.[Id] 
        AND a.[Key] = 'DayOfTheWeek'
      ) AS [Day]
    , (SELECT TOP 1 [Value]
        FROM [AttributeValue] av
        INNER JOIN [Attribute] a ON a.[Id] = av.[AttributeId] 
        AND a.[EntityTypeId] = 113 
        AND a.[EntityTypeQualifierColumn] = 'WorkflowTypeId' 
        AND a.[EntityTypeQualifierValue] = w.[WorkflowTypeId]
        WHERE [EntityId] = w.[Id] 
        AND a.[Key] = 'Time'
      ) AS [Time]
FROM
[Workflow] w
INNER JOIN [PersonAlias] pa ON pa.Id = w.[InitiatorPersonAliasId]
INNER JOIN [Person] p ON p.[Id] = pa.[PersonId] 
WHERE w.[WorkflowTypeId] = 1032

非常感谢任何帮助。

谢谢!

【问题讨论】:

  • Groupy by 结合 Count 可能是您正在寻找的,去谷歌上查看这些关键词!如果您有任何问题,请告诉我们
  • @Belairit 。 . .人们可能会猜到那里的某处有一个日期列。不能吗?

标签: sql sql-server database tsql sql-server-2012


【解决方案1】:

你可以写成:

;With cte_DayCount as
(
        SELECT av.[Value] as DayCount,w.[Id]  AS Id
        FROM [AttributeValue] av
        INNER JOIN [Workflow] w ON av.[EntityId] = w.[Id] 
        INNER JOIN [Attribute] a ON a.[Id] = av.[AttributeId]         
        AND a.[EntityTypeId] = 113 
        AND a.[EntityTypeQualifierColumn] = 'WorkflowTypeId' 
        AND a.[EntityTypeQualifierValue] = w.[WorkflowTypeId]
        AND a.[Key] = 'DayOfTheWeek'
        WHERE [Value] Like '%Monday%' -- Add day value here
        GROUP BY w.[Id], av.Value 
)                
SELECT COUNT(dc.DayCount) AS Total

FROM
[Workflow] w
INNER JOIN [PersonAlias] pa ON pa.Id = w.[InitiatorPersonAliasId]
INNER JOIN [Person] p ON p.[Id] = pa.[PersonId] 
INNER JOIN cte_DayCount dc ON DC.Id = w.[Id]
WHERE w.[WorkflowTypeId] = 1032

【讨论】:

  • 由于某种原因返回:Msg 102, Level 15, State 1, Line 3 ',' 附近的语法错误。
猜你喜欢
  • 2016-05-13
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 2015-04-08
  • 2014-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多