有点难度,思路就是使用多个select语句首先把治愈情况的结果统计出来,然后再group by ICDM,试一下再告诉你吧
解决方案 »
- 请老师们推荐些用的新的cool的 主题 第三方控件
- 高分请高手、、clientsockent/serversockent,中socket发送的消息经常收不到怎么办
- 程序运行问题
- 取得dbgrid1连接的表名
- 一个关于clientdataset的问题
- 看到有些朋友在找Delphi的MU窗口化代码 现在把它提供给大家
- idftp的返回消息怎么屏蔽掉?在线等待,给分
- 如果dbgrid中输入的数据非法,如何不让它post?..........
- 求助:颜色存到表格中
- 做一个小型网站的数据库用access行吗? 好多问题,大量分数!!!
- 我又有问题了,关于多态的,我的所能给的最高分.....
- 简单问题---------------给分了-----------------
同志啊.
在这里面有大量类似的交叉报表,
我也一直头疼,因为要写很多代码来排列报表格式.
如果能直接用SQL语句实现就好了
有哪位能解决我也要送他50分
决不失言
多多交流吧
我的QQ是45997433
[email protected]
SQL语句为:(已在SQL SERVER 7。0和SQL SERVER 2000上通过,快给分吧!!)
select T1.icdm,T2.ZY 治愈,T3.WY 未愈,T4.QT 其它
From
(Select icdm From icdm) T1, (select TB1.icdm,TB2.zy From icdm TB1
left Outer join
(select icdm,IsNull(Count(icdm),0) zy From cyqk
Where zyqk='治愈'group by icdm) TB2
On TB1.icdm=TB2.icdm) T2, (select TB1.icdm,TB2.wy From icdm TB1
left Outer join
(select icdm,IsNull(Count(icdm),0) wy From cyqk
Where zyqk='未愈'group by icdm) TB2
On TB1.icdm=TB2.icdm) T3, (select TB1.icdm,TB2.qt From icdm TB1
left Outer join
(select icdm,IsNull(Count(icdm),0) qt From cyqk
Where zyqk='其它'group by icdm) TB2
On TB1.icdm=TB2.icdm) T4where T1.icdm=T2.icdm
And T1.icdm=T3.icdm
And T1.icdm=T4.icdm
在用SQL语句查询数据时,速度慢,一般是返回的数据集太大的原因!
from test1
group by icdm,zyqk
order by icdm
这个SQL暂时还有点不妥,容我先去研究一下
(select icdm,
case when zyqk = '治愈' then count(icdm) else 0 end 治愈,
case when zyqk = '未愈' then count(icdm) else 0 end 未愈,
case when zyqk = '其它' then count(icdm) else 0 end 其它
from cyqk
group by icdm,zyqk) TB1
group by tb1.icdm