【发布时间】:2017-06-15 20:33:51
【问题描述】:
我有一个生成所需输出的查询,但布局不正确。我需要将一些列作为一个组进行旋转,但不知道该怎么做。
查询如下:
SELECT Line.DocumentName
,Package.PackageName
,Package.ContainerCount
,Package.PageCount
,m.Name Media
FROM Invoice i
JOIN Section s ON i.InvoiceDate = s.InvoiceDate
JOIN Line l ON s.InvoiceDate = l.InvoiceDate AND s.DocumentTypeID = l.DocumentTypeID
JOIN Package p ON l.InvoiceDate = p.InvoiceDate AND l.DocumentTypeID = p.DocumentTypeID AND l.DocumentDate = p.DocumentDate
JOIN MediaType m ON p.MediaTypeID = m.Id
WHERE i.InvoiceDate = '6/1/2017';
这会返回:
|varchar(100) |char(2) |int |int |varchar(10)|
|--------------------|-----------|--------------|---------|-----------|
|DocumentName |PackageName|ContainerCount|PageCount|Media |
|--------------------|-----------|--------------|---------|-----------|
|Invoices17_05_26.xml|01 | 1758| 2024|A |
|Invoices17_05_26.xml|30 | 382| 1728|Email |
|Invoices17_05_30.xml|01 | 2757| 3336|A |
|Invoices17_05_30.xml|30 | 626| 2101|Email |
|Credits17_05_01.xml |01 | 1346| 1488|A |
|Credits17_05_01.xml |30 | 390| 451|Email |
|Credits17_05_08.xml |01 | 0| 0|C |
|Credits17_05_08.xml |30 | 353| 408|Email |
|Stmts-17_05_01.xml |01 | 14796| 15299|B |
|Stmts-17_05_01.xml |30 | 2888| 3267|Email |
但是,我需要输出具有这种布局:
|DocumentName |01 ContainerCount|01 PageCount|01 Media|30 ContainerCount|30 PageCount|30 Media|
|--------------------|-----------------|------------|--------|-----------------|------------|--------|
|Invoices17_05_26.xml| 1758| 2024|A | 382| 1728|Email |
|Invoices17_05_30.xml| 2757| 3336|A | 626| 2101|Email |
|Credits17_05_01.xml | 1346| 1488|A | 390| 451|Email |
|Credits17_05_08.xml | 0| 0|C | 353| 408|Email |
|Stmts-17_05_01.xml | 14796| 15299|B | 2888| 3267|Email |
我尝试了以下变体,但无济于事:
【问题讨论】:
标签: sql-server sql-server-2008-r2 pivot