나는 SQL 서버에서 다음 쿼리를 사용하여 피벗 테이블을 만들어 2016 년SQL 서버 2016 병합 행
WITH PivotData AS
(
select [T_Spec_Char].[ID],
format([T_Sample].[TimeStamp], 'dd/MM/yyyy') as DT,
format([T_Sample].[TimeStamp], 'hh:mm:ss') as TM,
[T_Spec_Char].[Spec_Char],
[T_Spec].[Line],
cast([T_Sample].[Value] as float) as Val
from [ABC].[dbo].[T_Spec_Char], [ABC].[dbo].[T_Sample], [ABC].[dbo].[T_Spec]
where [T_Sample].[Spec_Char_ID] = [T_Spec_Char].[ID] and
([T_Spec_Char].[Spec_Char] = 'Zone1Temp' or [T_Spec_Char].[Spec_Char] = 'Zone2Temp'
or [T_Spec_Char].[Spec_Char] = 'Zone3Temp')
and [T_Sample].[Spec_ID] = [T_Spec].[ID]
group by [T_Spec_Char].[ID], [T_Sample].[TimeStamp], [T_Spec_Char].[Spec_Char],
[T_Spec].[Line], [T_Sample].[Value]
)
SELECT
DT,
TM,
[Line],
Zone1Temp,
Zone2Temp,
Zone3Temp
FROM PivotData
PIVOT
(
SUM(Val)
FOR Spec_Char
IN (Zone1Temp, Zone2Temp, Zone3Temp)
) AS PivotResult
ORDER BY DT, TM
결과는 다음과 같습니다
DT TM Line Zone1Temp Zone2Temp Zone3Temp
07/02/2017 01:21:55 Line2 310 NULL NULL
07/02/2017 01:21:55 Line2 NULL 330 NULL
07/02/2017 01:21:55 Line2 NULL NULL 345
07/02/2017 01:51:56 Line2 310 NULL NULL
07/02/2017 01:51:57 Line2 NULL 330 NULL
07/02/2017 01:51:57 Line2 NULL NULL 345
07/02/2017 02:21:56 Line2 310 NULL NULL
07/02/2017 02:21:56 Line2 NULL 330 NULL
07/02/2017 02:21:56 Line2 NULL NULL 345
07/02/2017 02:51:56 Line2 310 NULL NULL
07/02/2017 02:51:56 Line2 NULL 330 NULL
07/02/2017 02:51:56 Line2 NULL NULL 345
07/02/2017 03:21:56 Line2 310 NULL NULL
07/02/2017 03:21:56 Line2 NULL 330 NULL
07/02/2017 03:21:58 Line2 NULL NULL 345
07/02/2017 03:51:56 Line2 310 NULL NULL
07/02/2017 03:51:57 Line2 NULL 330 NULL
07/02/2017 03:51:57 Line2 NULL NULL 345
가 어떻게 병합 것 위 쿼리 결과의 첫 번째 3 행과 같은 날짜 및 시간을 가진 행을 한 행으로?
@Noxthron.
DT TM Line Temp
07/02/2017 01:21:55 Line2 310
07/02/2017 01:21:55 Line2 330
07/02/2017 01:21:55 Line2 345
07/02/2017 01:51:56 Line2 310
I would like to be able to see:
DT TM Line Zone1Temp Zone2Temp Zone3Temp
07/02/2017 01:21:55 Line2 310 330 345
데이터 또는 쿼리 결과를 표시하는 이미지를 사용하지 마십시오. – STLDeveloper
STLDeveloper, 이미지 변화 –
.... 제발 암시 적 조인 구문 (쉼표로 구분 된'FROM' 절)에서 명시 적으로 조인과 조건을 나열하는 것으로 전환하십시오. 어떤 항목이 어떤 테이블에 속하는지 'WHERE' 절은 주로'FROM' 절의 테이블에 대한 기본 필터링에 사용되어야하며, 그 것입니다.)'SELECT'의 모든 열을 기준으로 그룹화하면 실제로는 'DISTINCT'를 의미합니다. 어디에서 중복이 대신오고 대신 중지합니다. –