2014-12-01 95 views
0

當使用以下查詢返回星期幾時,我只想顯示特定日期(例如星期一)並計算返回「星期一」的次數。選擇查詢星期幾

 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 

任何幫助將非常感激。

謝謝!

+1

Groupy通過與伯爵的組合可能是你在找什麼,去檢查在谷歌的關鍵詞!如果您有任何問題,請通知我們 – Michael 2014-12-01 23:09:10

+1

@Belairit。 。 。人們大概可以猜到在那裏有一個日期列。難道不是嗎? – 2014-12-01 23:40:42

回答

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 
+0

出於某種原因返回:Msg 102,Level 15,State 1,Line 3在','附近的語法不正確。 – belairit 2014-12-02 22:44:23