1

@BeginTime が月の最初の日で、 @EndTime が月の最後の日である次のクエリがあります。

SET @BeginTime = RTRIM(@BeginTime) + ' 00:00:00'
SET @EndTime   = RTRIM(@EndTime) + ' 23:59:59'

select C.Name , COUNT(DISTINCT D.Id)  from DriverLic D 
INNER JOIN Clov C WITH (NOLOCK) ON D.CId = C.CId 

AND ((D.RDate < @EndTime) 
AND ( D.UrDate > @BeginTime))

group by C.Name

次のような出力が得られます。

Name  Count(D.Id)
AC        22
AB        32
CD        11

次のような出力を取得したいと思います。

Year Month Name Count(D.id)
2013  8     AC      22
2013  8     AB      32
2013  8     CD      11

これを達成する方法はありますか?

4

1 に答える 1

4

はい、

SELECT Year(yourDateColumn) AS 'Year', Month(yourDateColumn) AS 'Month', C.Name, COUNT(DISTINCT D.Id)  
from DriverLic D 
    INNER JOIN Clov C WITH (NOLOCK) ON D.CId = C.CId 
--WHERE your where conditions should go here...
GROUP BY 
    Year(yourDateColumn), Month(yourDateColumn), C.Name
于 2013-09-24T13:54:53.997 に答える