tekabül sütunlar eklemek için: Ben aşağıdaki gibi göstermek istiyoruzBen bir tablo var Microsoft SQL Server 2012.</p> <p>kullanma MİL veri kümesi
PartID |TypeSet | Setting | ObservID |TransDate
---------------------------------------------
1 A 456 12 10/20/2015
1 A 377 12 10/20/2015
1 A 425 12 10/20/2015
1 A 665 12 10/20/2015
1 A 543 12 10/20/2015
1 A 554 12 10/20/2015
1 B 34 41 10/21/2015
1 B 27 41 10/21/2015
1 B 27 41 10/21/2015
1 B 29 41 10/21/2015
1 C 1299 12 10/20/2015
1 C 1227 12 10/20/2015
. PartID'de tek sıra gruplandırılmış.
PartID | A Avg | B Avg | C Avg | A ObservID | B ObservID | C ObservID
---------------------------------------------------------------------
1 503 29 1263 12 41 12
Çok satırlı bir geri dönüş veri kümesi oluşturmama durumu için ObservID'leri görüntüleyemiyorum.
SELECT
PartID
,[A] as 'A Average'
,[B] as 'B Average'
,[C] as 'C Average'
-- ,(ObservID)
--,CASE WHEN [A] = 'A Average' THEN max([ObservID]) END as 'A Ob'
--,CASE WHEN [B] = 'B Average' THEN max([ObservID]) END as 'B Ob'
-- ,CASE WHEN [C] = 'C Average' THEN max([ObservID]) END as 'C Ob'
FROM
(SELECT
PartID
,TypeSet
,Setting
--,ObservID
FROM #Temp1
) as MeasData
PIVOT
(
AVG(Setting)
FOR [TypeSet] in
([A], [B], [C])
) as PivotTable
Sen İçinde ObservID almak için denedim ama bu satırları uncomment zaman, hataları meydana yukarıdaki sorguda görebilirsiniz: Bu sorgu ile A, B ve C Ortalama ile bir sorunum yok. Bazı notlar: Gözlemciler her bir TypeSet için tutarlı kalacaktır. İşte
veri var:create table #Temp1
(
PartID INT
, TypeSet VARCHAR(10)
, Setting INT
, ObservID INT
, TransDate Date
)
INSERT INTO #Temp1(PartID, TypeSet, Setting, ObservID, TransDate) VALUES
(1, 'A', 456, 12, '10/20/2015'),
(1, 'A', 377, 12, '10/20/2015'),
(1, 'A', 425, 12, '10/20/2015'),
(1, 'A', 665, 12, '10/20/2015'),
(1, 'A', 543, 12, '10/20/2015'),
(1, 'A', 554, 12, '10/20/2015'),
(1, 'B', 34, 41, '10/21/2015'),
(1, 'B', 27, 41, '10/21/2015'),
(1, 'B', 27, 41, '10/21/2015'),
(1, 'B', 29, 41, '10/21/2015'),
(1, 'C', 1299, 12, '10/20/2015'),
(1, 'C', 1227, 12, '10/20/2015')
MİL operasyonla mümkün benim istenen çıkış var mı? Ya da her bir Yazı Tipi için masadaki çoklu JOIN'lerin rotasını mı kullanmalıyım?
bu harika. Bana ihtiyacım olanı getirir. Tek endişem performanstır, ama aynı zamanda açıklama planlarını incelemedim ... Ama bunun için teşekkürler. – Charlie
@Charlie Bu, "PIVOT" kullanarak herhangi bir sorgu kadar hızlı olmalıdır. 'PIVOT' aslında koşullu toplama için sözdizimsel şekerdir. –