已经表的信息如下
日期 状态
1 未到诊
1 初诊
2 复诊
5 初诊
2 复诊
..
...
....
我想在界面的datagridivew中显示如下所示的信息日期 记录总数 到诊数量(初诊+复诊) 到诊率(初诊数量/记录总数)
1 10 2 20%
2 10 4 40%
3 20 5 25%
..
...
....注:若是单独球记录总数 和 到诊数量 我是会的 ,如下->
1.记录总数: select count(ID) from 表 group by 日期 order by 日期 desc
2.到诊总数: select count(ID) from 表 where 状态=“初诊” or 状态="复诊" group by 日期 order by 日期 desc
但是两个sql整合到一起(别忘了还有个到诊率),最后出现到上面datagridview那样,我就不太会弄了。
PS:如果到诊率不用sql直接取出,请写出C#代码或给个思路,谢谢了!!!!!!
日期 状态
1 未到诊
1 初诊
2 复诊
5 初诊
2 复诊
..
...
....
我想在界面的datagridivew中显示如下所示的信息日期 记录总数 到诊数量(初诊+复诊) 到诊率(初诊数量/记录总数)
1 10 2 20%
2 10 4 40%
3 20 5 25%
..
...
....注:若是单独球记录总数 和 到诊数量 我是会的 ,如下->
1.记录总数: select count(ID) from 表 group by 日期 order by 日期 desc
2.到诊总数: select count(ID) from 表 where 状态=“初诊” or 状态="复诊" group by 日期 order by 日期 desc
但是两个sql整合到一起(别忘了还有个到诊率),最后出现到上面datagridview那样,我就不太会弄了。
PS:如果到诊率不用sql直接取出,请写出C#代码或给个思路,谢谢了!!!!!!
解决方案 »
- 求一个TEXTBOX第一个字符的验证的代码 谢谢
- 代码转换,将java代码转换成C#代码,高手帮忙
- 问高手,用visual c#写了个小软件,测试没问题,发布后不能安装时什么原因
- 用颜色表示数值
- 如何通过当前的System.Windows.Forms.DataGridTextBox 对象获得当前的DataGridCell对象?
- 怎样实现winForm程序的用户同步登陆网站。
- 求国外经典教程<<C#大学教程>>的源码
- 关于datareader和dataadapter的具体问题
- 初始化Form1出现了问题,请帮忙看看这是怎么回事。(无限循环初始化)
- 如何从web页TreeView中获得一个节点的值
- C#winform程序,大数据集的时候,如何优化内存使用
- ckeditor、ckfinder配置使用的问题
记录总数: select count(ID)as 1 from 表 group by 日期 order by 日期 desc
union
到诊总数: select count(ID)as 2 from 表 where 状态=“初诊” or 状态="复诊" group by 日期 order by 日期 desc
)
{
dataGridView1[3, i].Value = (double)dataGridView1[1, i].Value / (double)dataGridView1[2, i].Value+"%";
}
(select count(ID) as AllCount,id from table group by 日期 order by 日期 desc) A
on table.id=A.id left join
(select count(ID)as count1,id from table where 状态=“初诊” or 状态="复诊" group by 日期 order by 日期 desc)B on Table.id=B.id
不过我没调试 还有订正下
for (int i = 0; i < dataGridView1.RowCount; i++)
{
dataGridView1[3, i].Value = (double)dataGridView1[1, i].Value*100 / (double)dataGridView1[2, i].Value+"%";
}
workday int,
worktype nvarchar(10))insert into test values(1,'初诊')
insert into test values(1,'初诊')
insert into test values(1,'未到诊')
insert into test values(1,'初诊')
insert into test values(1,'复诊')
insert into test values(1,'未到诊')
insert into test values(2,'初诊')
insert into test values(2,'未到诊')insert into test values(3,'初诊')
insert into test values(3,'未到诊')
insert into test values(3,'复诊')
insert into test values(3,'复诊')
insert into test values(3,'未到诊')select * from test order by workday
select workday,count(1) as 总数,sum(case when worktype='初诊' then 1 else 0 end + case when worktype='复诊' then 1 else 0 end) AS 到诊数量,sum(cast(case when worktype='初诊' then 1 else 0 end + case when worktype='复诊' then 1 else 0 end as decimal))/count(1)
from test group by workday
from test group by workday
日期,
count(id) as 记录总数,
sum(case 状态='初诊' or 状态='复诊' then 1 else 0 end) as 到诊总数,
ltrim(cast(sum(case 状态='初诊' or 状态='复诊' then 1 else 0 end)*100.0/count(id) as dec(18,2)))+'%' as 到诊率
from
tb
group by
日期你分挺多的!