选择查询星期几
问题描述:
当使用以下查询返回星期几时,我只想显示特定日期(例如星期一)并计算返回“星期一”的次数。选择查询星期几
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
任何帮助将非常感激。
谢谢!
答
你可以写为:
;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
+0
出于某种原因返回:Msg 102,Level 15,State 1,Line 3在','附近的语法不正确。 – belairit 2014-12-02 22:44:23
Groupy通过与伯爵的组合可能是你在找什么,去检查在谷歌的关键词!如果您有任何问题,请通知我们 – Michael 2014-12-01 23:09:10
@Belairit。 。 。人们大概可以猜到在那里有一个日期列。难道不是吗? – 2014-12-01 23:40:42