表T,3个字段pk,a,b。pk是自增列,a有1234这4种取值,b是int类型。现在要查出这么一种东西来: 1 2 3 4
0 ? × @ %
1 &
其中?是T.a=1,T.b=0的记录条数,×是T.a=2,T.b=0的记录条数,@是T.a=3,T.b=0的记录条数&是T.a=1,T.b=1的记录条数以此类推。因为a的取值只有4种,所以按1234分别写4个存储过程,然后用并排的4个Datalist来显示,在具体实际情况中是可接受的,而暂时我也是这么考虑的,不过希望大家是否帮忙再想想办法。
顶有分,解决加到200,不够可以再开贴再加200
0 ? × @ %
1 &
其中?是T.a=1,T.b=0的记录条数,×是T.a=2,T.b=0的记录条数,@是T.a=3,T.b=0的记录条数&是T.a=1,T.b=1的记录条数以此类推。因为a的取值只有4种,所以按1234分别写4个存储过程,然后用并排的4个Datalist来显示,在具体实际情况中是可接受的,而暂时我也是这么考虑的,不过希望大家是否帮忙再想想办法。
顶有分,解决加到200,不够可以再开贴再加200
解决方案 »
- 关于c#数据结构的设计
- 如何取得随机数组中符合特定数量的最多元素组合?
- 跪求解答。。
- 工作问题,大虾们给点意见。
- 请教js的正确写法,怎么样能找到母版页中的form1
- 哪位高手能详细解释一下implicit和explicit关键字的意义啊?
- VS.NET与其它语言混合开发(如java,flash,vb等)
- 我在C#中添加了office引用,但是如何使用啊?
- 我想了解一下中国国内的软件公司,请问综合实力较大的公司或者在行业软件做得较大的有哪些?有时间的话多说几个?或者网上哪里有这方面的
- 各位大哥!救救小弟吧!!!!!!
- 请问有没有人做过MSN方面的程序(发送和接收文件)?
- 高分求解决msn帐号后缀名的问题。(顶者有分)
select pk, case a when 1 then b else '' end as '1', case a when 2 then b else '' end as '2', case a when 3 then b else '' end as '3', case a when 4 then b else '' end as '4'
from T
如:
select AA.a1, BB.a2, CC.a3, DD.a4
from (select b, count(*) as a1 from T where a=1 group by b) AA
Full ouuer join (select b, count(*) as a2 from T where a=2 group by b) BB
on AA.b=BB.b
Full ouuer join (select b, count(*) as a3 from T where a=3 group by b) CC
on CC.b=BB.b
Full ouuer join (select b, count(*) as a4 from T where a=4 group by b) DD
on CC.b=DD.b
我说的“可接受”,比如下面这种方法就是“不可接受”的:
先用查询查出到底这个东西有多少行(假设n),然后用n×4条Sql语句来分别填充这4n个td。
因为n到底是多少根本无法预测,有可能需要几百上千条语句。按列分开是可接受的,因为我们已经知道是4种情况。
采用case
select pk, case a when 1 then b else '' end as '1', case a when 2 then b else '' end as '2', case a when 3 then b else '' end as '3', case a when 4 then b else '' end as '4'
from T
from T
for(i=1;i<=4;i++)
for(j=0;j<=n;j++)
list_i.value=select count(*) from T where a=i and b=j