javascript - 用于数据组织的 SQL Server 查询

标签 javascript jquery sql sql-server ajax

我正在使用 SQL Server 2012,我想通过数据库查询实现此 View 并使用 jquery 以编程方式显示它。

预期输出

enter image description here

当前输出

enter image description here

这是我当前的查询:

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];

上面的查询会给你想要的输出

关于javascript - 用于数据组织的 SQL Server 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37744038/

相关文章:

php - jQgrid 中使用 Php 页面返回的 JSON 数据自动完成

javascript - Web API - 保留字?

javascript - ExtJS 选项卡面板加载程序无法加载 html 页面的 javascript

javascript - 在后台实现模态(模态弹出窗口未带到前台)

javascript - jquery .on() 不适用于克隆元素

javascript - 将一个页面的 div 插入另一个页面

sql - SQL Server 中的父子关系

jquery - 在设定的时间更改 jQuery 移动按钮的值

mysql - 如何根据 bool 值对同一字段进行两次计数?

mysql - 从具有特定值的同一表插入