2017-09-25 126 views
-1

以下是表格结构,下面给出了所需的输出。使用SQL列的数据在SQL中进行数据透视

请按下Run Code Snippet来查看表格结构。

<html> 
 
    <body> 
 
    <strong>Existing Structure</strong> 
 
    <br> 
 
    <br> 
 
    <table style="width:100%"> 
 
     <tr> 
 
     <th>VoucherID</th> 
 
      <th>ColumnName</th> 
 
      <th>ColumnValue</th> 
 

 
     </tr> 
 
     <tr> 
 
     <td>10</td> 
 
     <td>Buyer Name</td> 
 
     <td>Mr. ABC</td> 
 
     </tr> 
 
     <tr> 
 
     <td>10</td> 
 
     <td>Buyer Address</td> 
 
     <td>Vasant Vihar</td> 
 
     </tr> 
 
     <tr> 
 
     <td>10</td> 
 
     <td>Buyer City</td> 
 
     <td>New Delhi</td> 
 
     </tr> 
 
     <tr> 
 
     <td>10</td> 
 
     <td>Buyer Email</td> 
 
     <td>[email protected]</td> 
 
     </tr> 
 
    </table> 
 
<br> 
 
<strong>I want output as follow:-</strong> 
 
<br> 
 
<br> 
 
     <table style="width:100%"> 
 
      <tr> 
 
      <th>VoucherID</th> 
 
       <th>Buyer Name</th> 
 
       <th>BuyerAddress</th> 
 
       <th>BuyerCity</th> 
 
       <th>BuyerEmail</th> 
 

 
      </tr> 
 
      <tr> 
 
      <td>10</td> 
 
      <td>Mr. ABC</td> 
 
      <td>Vasant Vihar</td> 
 
      <td>New Delhi</td> 
 
      <td>[email protected]</td> 
 
      </tr> 
 
     </table> 
 
     </body> 
 
     </html>

嗨, 我使用SQL Server 2016 创建从 “dbo.TransactionDetails.ColumnName” 动态列和 “dbo.TransactionDetails.ColumnValue” 取值,其中TransactionDetail是表名和“ColumnName”列包含要动态创建的列的名称,该列中的值将取自“ColumnValue”。 请帮助获取所需的输出。如果有可能彻底摆动或任何其他方式。引导我通过。

我所做的是添加多个事务处理细节表,并通过使用称为HARDCODING的“where”来获得所需的输出。但需要通过旋转或任何其他方式做到这一点

+0

请编辑您的问题,并删除所有HTML标签。你的问题看起来像一个HTML而不是数据样本。 – FLICKER

回答

0

试试这个

create table #Table1 
(VoucherID int, ColumnName varchar(100), ColumnValue varchar(255)) 

insert into #Table1 
values (10,'Buyer Name','Mr. ABC') 
, (10,'Buyer Address','Vasant Vihar') 
, (10,'Buyer City','New Delhi') 
, (10,'Buyer Email','[email protected]') 



select * from #Table1 

Select * from 
(
    Select VoucherID,ColumnName,ColumnValue from #Table1 
) as src 
pivot 
(
    MAX(ColumnValue) 
    FOR ColumnName IN([Buyer Name],[Buyer Address],[Buyer City],[Buyer Email]) 
)as pvt 

--Drop table #Table1 

enter image description here

+0

谢谢你,如果可以的话,请给出答案。 –