그것은 (같이 소자 군 수있다 COLUMN LIKE='Value%'
A의) PIVOT
표? [DBT]. [Status] 테이블이 있는데, 여기에는 데이터베이스, 인스턴스 등의 다양한 상태가 포함되어 있으며 모든 PROD 및 TEST 값을 단일 값으로 피벗 / 쿼리하고 싶지는 않지만 그룹화하십시오.
예 대신 상태에 대한 항목을 갖는들 Prod
, Prod ACC
, Prod APP
, ... 등은 I 값을 포함하는 하나의 칼럼 것 Name LIKE 'Prod%'
및 Name LIKE 'Test%'
.
내가 지금까지 무엇을 :
테이블 정의
CREATE TABLE [DBT].[Status](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Status] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY],
CONSTRAINT [IX_Status] UNIQUE NONCLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO
테이블 값
INSERT INTO [DBT].[Status]
(
-- ID -- this column value is auto-generated
Name
)
VALUES
('Test ACC'),
('Test APP'),
('Test DBA'),
('Prod ACC'),
('Prod APP'),
('Prod DBA'),
('Prod'),
('Test'),
('Migrated'),
('Offline'),
('Reserved')
피봇 상태 테이블
SELECT 'Database Status' AS [DB Status],
[1] AS [Test ACC], [2] AS [Test APP], [3] AS [Test DBA], [4] AS [Prod ACC], [5] AS [Prod APP], [6] AS [Prod DBA], [7] AS [Prod], [8] AS [Test], [9] AS [Migrated], [10] AS [Offline], [11] AS [Reserved]
FROM
(
SELECT ID, Name FROM [DBT].[Status]
) AS Source
PIVOT
(
COUNT(Name) FOR ID IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11])
) AS PivotTable
지금까지 출력
DB Status Test ACC Test APP Test DBA Prod ACC Prod APP Prod DBA Prod Test Migrated Offline Reserved
--------------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
Database Status 1 1 1 1 1 1 1 1 1 1 1
db <> 바이올린
는 dbfiddle 지금까지.
질문
다양한 값 Test...
과 Prod....
값에 대해 여러 행을 갖는 대신 다음과 같이 그룹화하는 것이 좋습니다.
DB Status | Test | Prod | Migrated | Offline | Reserved
--------------- | ---- | ---- | -------- | ------- | --------
Database Status | 4 | 4 | 1 | 1 | 1
내 질문을 해결하는 방법에 대한 단서가 없습니다. (솔직히 말해서 나는 어제 광대 한 시행 착오 끝에 PIVOT을 잡았습니다.)
이 질문은 이미 요청한 여러 테이블에 대해 그룹화 된 항목의 합계 / 횟수를 만드는 방법 과 관련이 있습니다 . [DBT]. [인스턴스] 및 [DBT]. [데이터베이스] 테이블에는 현재보고있는 테이블에 해당하는 [StatusID]가있는 열이 있습니다.