我最近开始了我的sql开发之旅,并且遇到了一个困扰我很多天的场景。
我需要获得一个基于我希望的数据输出,但感觉它不是数据透视的一般实现,因为列需要在现有列和枢轴周列的组合中进行生成,您可以查看以下解释。
我的输出应该像我的html代码的输出(请点击运行代码段)
<!DOCTYPE html>
<html>
<head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<h2>HTML Table</h2>
<table>
<tr>
<th>SAPID</th>
<th>MONDAY_3</th>
<th>TUESDAY_3</th>
<th>WEDNESDAY_3</th>
<th>THURSDAY_3</th>
<th>FRIDAY_3</th>
<th>SATYURDAY_3</th>
<th>SUNDAY_3</th>
<th>MONDAY_4</th>
<th>TUESDAY_4</th>
<th>WEDNESDAY_4</th>
<th>THURSDAY_4</th>
<th>FRIDAY_4</th>
<th>SATYURDAY_4</th>
<th>SUNDAY_4</th>
</tr>
<tr>
<td>63424123</td>
<td>8</td>
<td>6</td>
<td>4</td>
<td>8</td>
<td>8</td>
<td>6</td>
<td>6</td>
<td>4</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>6</td>
<td>4</td>
<td>8</td>
</tr>
<tr>
<td>6882233</td>
<td>8</td>
<td>6</td>
<td>4</td>
<td>8</td>
<td>8</td>
<td>6</td>
<td>6</td>
<td>4</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>6</td>
<td>4</td>
<td>8</td>
</tr>
</table>
</body>
</html>
&#13;
我试过下面的sql查询
select * from (select sap_id,week,
monday,tuesday,wednesday,thursday,friday,saturday,sunday from
ssc_transactions)
pivot (sum(week) for week in (select week from ssc_calendar_month_week_map
where month like 'Feb' and year='2018') )
如果我以优化的方式获得所需的解决方案,它将非常有用。