asp sql 怎样进行二次查询

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:35:19
我现在有一个库,结构式这样的
1 公司1 职位1
2 公司1 职位2
3 公司2 职位1
4 公司2 职位2
5 公司1 职位3

我想在asp页面里显示
公司1 职位1 职位2 职位3
公司2 职位1 职位2

请问sql应该怎么写
请写详细点 我想知道怎么先取公司名称 输出 再在这个循环里取符合公司名称的职位 输出

我想这么写,大概意思是这样的,可我不会写 大伙帮帮我 写详细点哈。
select top 10 公司名称 orcer dexc;
rs.open sql,conn,1,1
for i=1 to rs.recordcount
select top 4 公司名称 orcer dexc;
<td>公司名称</td>
for i=1 to rs.recordcount
rs.movenext
<td>职位名称</td>
rs.close
rs.movenext
next
rs.close

职位是需要挂连接的。。
职位是需要挂连接的。。
职位是需要挂连接的。。
职位是需要挂连接的。。职位是需要挂连接的。。职位是需要挂连接的。。职位是需要挂连接的。。

做到存储过程里吧,一条语句不好实现的,然后你调用存储过程就好了。
存储过程里这样实现:
假如你的表叫TABLE1,有 公司 和 职位 两字段
先:select max(a.ss) from (select count(*) as ss from TABLE1 group by 公司) a
求出你同一个公司的最大职位数,假如是2,那想要的结果列就最多有两列,假如叫 职位1,职位2,同样如果最大是3条就是 职位1,职位2,职位3
这里的职位1,职位2,职位3 都是列名,不是对应你实际的职位名字,后面加的1,2,3只是为了好区分
接着:
select u.公司,
max(case when u.colno=1 then u.职位end) as 职位1,
max(case when u.colno=2 then u.职位end) as 职位2,
max(case when u.colno=3 then u.职位end) as 职位3
/*职位数是4就再加上一句,以此类推就可以*/
from (select t.*,colno=(select COUNT(*)
from table1 tt
where tt.公司=t.公司
and ascii(tt.职位)<=ascii(t.职位) )
from table1 t) u
group by u.公司

执行后的结果就是
公司 职位1 职位2 职位3
公司1 职位1 职位2 职位3
公司2 职位1 职位2

http://zhidao.baidu.com/question/102230779.html看看这个。得到了数据集再