代码:
<%
sql="select BdName AS KK from QJDiaoBanBiao WHERE (Zb <> 0) AND (ZT = 0) AND (ZhangTai = 1) AND (ZT1 >= 1) group by BdName"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
%>
<table width="400" border="1">
<tr>
<td>姓名</td>
<td>1月</td>
<td>2月</td>
<td>3月</td>
<td>4月</td>
<td>....12月</td>
<td>....汇总</td>
</tr>
<%
do while not rs.eof
%>
<tr>
<td><font color="#990000" size="3"><strong><%=rs("KK")%></strong></font></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<%
do
rs.movenext
%>
</table>
现在这样名字数据库里有有4个,但只能显示出一条,其他的1-12月的数据如何对应该名字来出数据。请大侠帮忙。
就是想达到如下效果
日期字段(DateTime1) 姓名(BDName) 进/出(Type1) 数量(QJTS)
2014-1-2 AAA 进 8
2014-1-10 AAA 出 5
2014-1-15 BBB 出 3
2014-1-18 CCC 进 6
… … … …
现在是想改成这种方式: 按姓字一样的统计,进-出并显示在对应的月份里。
姓名 1月 2月 …12月 汇总
AAA 3 … … …
BBB -3 … … …
CCC 6 … … …
请帮忙,如何实现该效果。并给出代码,小弟初学。谢谢。。
------解决方案--------------------
只有12个月 那就不用动态行转列了。
直接
select
bdname,
sum(case when month(datetime1)=1 then Type1='进' then QJTS else 0 end) as '一月进',
sum(case when month(datetime1)=1 then Type1='出' then QJTS else 0 end) as '一月出',
... --剩下11个月自己写
from
tb
group by
bdname
------解决方案--------------------
select
bdname,
sum(case when month(datetime1)=1 then Type1='进' then QJTS else 0 end) as '一月进',
sum(case when month(datetime1)=1 then Type1='出' then QJTS else 0 end) as '一月出',
... --剩下11个月自己写
,sum(数量) as 汇总
from
tb
group by
bdname
------解决方案--------------------
版主不够细心啊,改一下
select
bdname,
sum(case when month(datetime1)=1 and Type1='进' then QJTS else 0 end) as '一月进',
sum(case when month(datetime1)=1 and Type1='出' then QJTS else 0 end) as '一月出',
... --剩下11个月自己写
,sum(数量) as 汇总
from
tb
group by
bdname