[英]SQL Server query for organization of data
我正在使用SQL Server 2012,我希望通過數據庫查詢實現此視圖,並使用jquery以編程方式顯示它。
預期產出
電流輸出
這是我目前的查詢:
SELECT [OrganizationName],COUNT([Id]) AS Frequency,[Set] FROM *{table}* GROUP BY [Set],[OrganizationName];
我使用ajax顯示表:
$.ajax({
url: '@Url.Action("GetOrganizations", "Companies")',
type: 'POST',
contentType: 'application/json',
data: null,
dataType: 'json',
success: function (result) {
console.log("result length: " + result.length);
$("#orgTableDiv").css("max-height", result.length * 15);
if (result.length > 0 && result[0].OrganizationName!=null)
{
var selectOptions = "<option value='All'>All</option>"; // dropdown containing all organizations
$("#orgTable").empty();
var div = "";
div = "<tr>" +
"<th>No</th>" +
"<th>Organization Name</th>";
for (var i=0; i<data.length ; i++) {
div += "<th>"+data[i]["name"]+"</th>";
}
div += "</tr>";
$("#orgTable").append(div);
var numOfSets = data.length;
var organizationName = "";
var counter = 1;
for (var i = 0; i < result.length; i++) {
var row = "<tr>" +
"<td>" + counter + "</td>" +
"<td>" + result[i].OrganizationName + "</td>";
if (result[i].SetValue!=null)
for (var j=0; j < result[i].SetValue.length; j++) {
var setData = result[i].SetValue[j].split(':');
for (var m=0; m<setData.length; m++) {
var temp = setData;
}
var setNum = setData[0];
var setFrequency = setData[1];
for (var c=1; c<=numOfSets; c++) {
if (c==setNum)
row += "<td>" + setFrequency + "</td>";
}
}
counter++;
row += "</tr>";
$("#orgTable").append(row);
selectOptions +="<option value='" + result[i].OrganizationName+ "'>" + result[i].OrganizationName+ "</option>";
}
$('#organizationOption').empty().append(selectOptions);
}
},
error: function (result) {
alert('Error: ' + result);
}
})
我怎樣才能達到預期的產量? 我目前堅持我的實施。
SELECT [OrganizationName],
Sum(case when set = 1 then 1 else 0 end) as set1,
Sum(case when set = 2 then 1 else 0 end) as set2,
Sum(case when set = 3 then 1 else 0 end) as set3,
Sum(case when set = 4 then 1 else 0 end) as set4,
FROM *{table}* GROUP BY [OrganizationName];
上面的查詢將為您提供所需的輸出
select *
from
(
select OrganizationName, set, Frequency
from Tablename
) src
pivot
(
sum(Frequency)
for set in ([1], [2], [3],[4])
) piv;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.