我無法按我的動態數據透視表中的代碼進行分組。我需要按照如下所示在ZONE表中定義的代碼區進行分組。我需要用group來顯示不同的代碼。有些代碼有多個zone_id,因此我需要合併它們。我使用SQL 2008SQL動態數據透視表按
ZONE_ID SITE_ID ZONE_NAME CODE
197 103 ADANA CADDE CAM2 M01001
180 103 ADANA CADDE CAM1 M01001
Declare @Date1 date = GetDate()
IF OBJECT_ID('tempdb..#Dates') IS NOT NULL
drop table #Dates
SELECT DISTINCT CONVERT(VARCHAR,START_TIME,106) AS [Date]
INTO #Dates
FROM dbo.DIRECTIONAL_METRIC
WHERE CAST(START_TIME as DATE) >=CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@Date1)-1),@Date1),101)
and CAST(START_TIME as DATE) <= @Date1
AND DATEPART(HOUR,START_TIME) BETWEEN 9 AND 23
order by [Date]
Declare @SQL varchar(max) = Stuff((Select Distinct ',' + QuoteName(convert(varchar,[Date],106))
From #Dates
Order by 1 For XML Path('')
),1,1,'')
Select @SQL = N'
Declare @Date1 DATE
SELECT @Date1 = GetDate()
SELECT [CODE],' + @SQL + ',[Grand Total Enter],[Grand Total Exit]
FROM
(
SELECT [CODE]
,[Date] = CONVERT(VARCHAR, START_TIME, 106)
,[NUM_TO_ENTER]
,[Grand Total Enter] = (SELECT SUM(NUM_TO_ENTER) FROM DIRECTIONAL_METRIC WHERE Zone_ID=A.Zone_ID AND
CAST(START_TIME AS DATE) >='''+CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@Date1)-1),@Date1),101)+'''AND CAST(START_TIME AS DATE) <='''+cast(@Date1 as varchar(10))+'''
AND DATEPART(HOUR,START_TIME)BETWEEN 9 AND 23)
,[Grand Total Exit] =(SELECT SUM(NUM_TO_EXIT) FROM DIRECTIONAL_METRIC Where Zone_ID=A.Zone_ID AND
CAST(START_TIME AS DATE) >='''+CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@Date1)-1),@Date1),101)+''' AND CAST(START_TIME AS DATE) <='''+cast(@Date1 as varchar(10))+'''
AND DATEPART(HOUR,START_TIME)BETWEEN 9 AND 23)
FROM DIRECTIONAL_METRIC A INNER JOIN ZONE Z ON Z.ZONE_ID = A.ZONE_ID
WHERE CAST(START_TIME as DATE) >=CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@Date1)-1),@Date1),101)
and CAST(START_TIME as DATE) <= @Date1
AND DATEPART(HOUR,START_TIME)BETWEEN 9 AND 23
AND Z.CODE IS NOT NULL
) S
PIVOT
(
SUM([NUM_TO_ENTER]) FOR
[Date] IN (' + @SQL + ')
) AS Pvt GROUP BY [CODE] '
Exec(@SQL);
你的問題到底是什麼? – Hogan
如何在我的動態數據透視中按代碼進行分組? –
與'SELECT ... FROM(當前代碼)AS X GROUP BY X.CODE'一樣總是圍繞着你的代碼的相同方式。 – Hogan