当前位置: 代码迷 >> Sql Server >> sql分组统计有关问题
  详细解决方案

sql分组统计有关问题

热度:30   发布时间:2016-04-24 20:22:27.0
sql分组统计问题
有一个表,其数据类似与下表
大类  中类  小类   ...
大1   中1   小1   ...
大1   中n   小n   ...
大2   中1   小1   ...
.............    ...
大n   中n   小n   ...

就是说大类包含多个中类,中类又包括多个小类

现要实现如下效果

某某条件下 大类1 D1条记录
                   其中 中1 Z1条记录
                          其中 小1 X1条记录
                               小2 X2条记录
                               。。。。。
                               小n Xn条记录
                        中2 Z2条记录
                          其中 小1 X1条记录
                               小2 X2条记录
                               。。。。。
                               小n Xn条记录
                        。。。。。。。
                        中N Zn条记录
                          其中。。。。
           大类2 D2条记录
                   其中。。。。。。。。。
    
sql

------解决方案--------------------
把原始数据和期待结果贴出来,你这描述看的头晕,最好文本贴出来
------解决方案--------------------
先给个思路吧,先把原来的表转换成 id name pid这种形式,
然后使用cte递归。
------解决方案--------------------
很抱歉,就我目前知识和见过的帖子来看,纯SQL无法实现,需要用前端语言或者工具来辅助
------解决方案--------------------
网页上用什么展示?纯html?
这个不应该用sql来处理,用javascript+html处理都行啊
------解决方案--------------------
显示格式不是SQL擅长处理的
------解决方案--------------------
引用:
数据库里面的表类似于这个样子

现要在网页上展示如下


该怎么弄


请问:
0. 您所说的网页,只限于HTML5可以么(不保证兼容低版本的)
1. 您需要生成的这个表格是静态的还是动态的?需不需要实时更新?
2. 如果用纯T-SQL语句(或者是View,或者是Procedure),生成与你所需要的表格相对应的HTML Code——也就是说你只需要把Query的结果Copy-Paste到网页的源代码中(生成静态表格,这样就够了);或是用jQuery fetch 将运行结果添加到网页中(可以满足动态需要)。这样可以满足您的需求么?

样板输出会类似 (可以:Copy-Paste 到 http://www.w3schools.com/html/tryit.asp?filename=tryhtml_basic, 查看结果。或者
自己在开头添加 <!DOCTYPE html><html><body> 和 在结尾添加</body></html>; 数据来源 SQL Server 样板数据库 AdventureWorks2008R2.Person.Address):

<table border=1><thread><tr><th> StateProvinceIndex </th><th> City </th><th> PostalCode </th><th> NumOfRcds </th></tr><tbody>
<tr><th rowspan="2">1</th><th rowspan="1">Calgary</th><td>T2P 2G8</td><td>23</td></tr>
<tr><th rowspan="1">Edmonton</th><td>T5</td><td>2</td></tr>
<tr><th rowspan="5">3</th><th rowspan="1">Birmingham</th><td>35203</td><td>2</td></tr>
<tr><th rowspan="1">Florence</th><td>35630</td><td>1</td></tr>
<tr><th rowspan="1">Huntsville</th><td>35801</td><td>2</td></tr>
  相关解决方案