2014-12-01 2 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

+1

@Belairit을 알려주십시오. . . 아마도 어딘가에 날짜 열이 있다고 추측 할 수 있습니다. 하나도 못 봤어? –

답변

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

어떤 이유로이 반환합니다 : 메시지 102, 수준 15, 상태 1, 줄 3 ','근처의 구문이 잘못되었습니다. – belairit