表格显示问题,在线等。

gzapu 2009-08-06 04:31:33
通过查询,生成这个表格
set rs=conn.Execute ("select * from gongzimingxi order by liushuihao asc")

姓名 工位 实际工时 增加系数倍率 日总产量 小时产能 运行时间 liushuihao
农学信 z2/t2 8 0.65 28700 13636 2 0001

农学信 挑选 8 0 8000 2000 3 0001

农学信 返工 8 0 1250 1500 0.5 0001

农学信 套弹 8 0 715 1900 0.5 0001

黄昭引 t2/z2 8 0.65 28700 9318 2 0001

黄昭引 挑选 8 0 8000 2000 3 0001

黄昭引 返工 8 0 1250 1500 0.5 0001

黄昭引 套簧 8 0 715 1900 0.5 0001


想变成这样显示,就好象EXCEL里面的合并一样。

姓名 liushuihao 工位 实际工时 增加系数倍率 日总产量 小时产能 运行时间
z2/t2 8 0.65 28700 13636 2

农学信 0001 挑选 8 0 8000 2000 3

返工 8 0 1250 1500 0.5

套弹 8 0 715 1900 0.5

t2/z2 8 0.65 28700 9318 2

黄昭引 0001 挑选 8 0 8000 2000 3

返工 8 0 1250 1500 0.5

套簧 8 0 715 1900 0.5

...全文
44 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
浪尖赏花 2009-08-06
...这么快就结了
回复
浪尖赏花 2009-08-06
修改下
select a.*, b.c1, c.c2
from gongzimingxi a
left join (select 姓名, count(1) c1 from gongzimingxi group by 姓名) b
on a.姓名 = b.姓名
left join (select 姓名, liushuihao, count(1) c2
from gongzimingxi
group by 姓名, liushuihao) c
on a.姓名 = c.姓名
and a.liushuihao = c.liushuihao
order by a.姓名, a.liushuihao
回复
浪尖赏花 2009-08-06
可以做到
select a.*, b.c1, c.c2
from gongzimingxi a
left join (select user_name, count(1) c1 from gongzimingxi group by 姓名) b
on a.user_name = b.user_name
left join (select user_name, liushuihao, count(1) c2
from gongzimingxi
group by 姓名, liushuihao) c
on a.user_name = c.user_name
and a.liushuihao = c.liushuihao
order by a.姓名, a.liushuihao

c1是姓名重复的个数,c2是在姓名相同的前提下liushuihao重复的个数,
也就是说c1是第一列的行数,c2是第二列的行数
LZ查询出来的结果应该是
姓名 工位 实际工时 增加系数倍率 日总产量 小时产能 运行时间 liushuihao c1 c2
农学信 z2/t2 8 0.65 28700 13636 2 0001 4 4

农学信 挑选 8 0 8000 2000 3 0001 4 4

农学信 返工 8 0 1250 1500 0.5 0001 4 4

农学信 套弹 8 0 715 1900 0.5 0001 4 4

黄昭引 t2/z2 8 0.65 28700 9318 2 0001 4 4

黄昭引 挑选 8 0 8000 2000 3 0001 4 4

黄昭引 返工 8 0 1250 1500 0.5 0001 4 4

黄昭引 套簧 8 0 715 1900 0.5 0001 4 4



那么我们在生成table的时候做手脚
下面是伪代码,首行为1
cell1 = 0;//初始化第一列已画行数
cell2 = 0;//初始化第二列已画行数
for(i=1;i<=记录数;i++){
if(i>cell1){
画出<td rowspan="<%=c1%>"></td>
cell1+=<%=c1%>
}
if(i>cell2){
画出<td rowspan="<%=c2%>"></td>
cell2+=<%=c2%>
}
....//然后从第3列正常话表格
}
}
回复
gzapu 2009-08-06
我就是想要达到好象EXCEL表合并显示的效果。
回复
lzp4881 2009-08-06
<%
...
set rs=conn.Execute ("select * from gongzimingxi order by 姓名,liushuihao asc")
%>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>姓名</td>
<td>liushuihao</td>
<td>工位</td>
<td>实际工时</td>
<td>增加系数倍率</td>
<td>日总产量</td>
<td>小时产能</td>
<td>运行时间 </td>
</tr>
<%
do while not rs.eof
%>
<tr>
<%
if xm=rs("姓名") then
response.write "<td> </td>"
else
response.write "<td>"&rs("姓名")&"</td>"
xm=rs("姓名")
end if
if liushuihao=rs("liushuihao") then
response.write "<td> </td>"
else
response.write "<td>"&rs("liushuihao")&"</td>"
liushuihao=rs("姓名")
end if
%>
<td><%=rs("工位")%></td>
<td><%=rs("实际工时")%></td>
<td><%=rs("增加系数倍率")%></td>
<td><%=rs("日总产量")%></td>
<td><%=rs("小时产能")%></td>
<td><%=rs("运行时间")%> </td>
</tr>
<%
rs.movenext
loop
rs.close
set rs=nothing
%>
</table>
回复
shenzhenNBA 2009-08-06
发现漏了一个,补上, :)

select 姓名, liushuihao, 工位, 实际工时, 增加系数倍率, 日总产量, 小时产能, 运行时间
from 表
group by 姓名, 共位
order by liushuihao


不过好象每行都有姓名哦...
回复
shenzhenNBA 2009-08-06

select 姓名, liushuihao, 工位, 实际工时, 增加系数倍率, 日总产量, 小时产能, 运行时间
from 表
group by 姓名
order by liushuihao
回复
shenzhenNBA 2009-08-06

select 姓名, liushuihao, 工位, 实际工时, 增加系数倍率, 日总产量, 小时产能, 运行时间
from 表
group by 姓名
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告