- 论坛徽章:
- 0
|
You better change your database design.
四张表
card /*违章问题记录*/
{
id int 4,
color_id int 4, -- --> color.id
Emp_id int 4, -- --> Emp.id
Dep_id int 4 -- --> Dep.id
}
color /*问题级别,红黄白等级别*/
{
id int 4,
name varchar(10)
}
Emp /*人员表*/
{
id int 4,
name varchar(10) /*即 card表中的 Emp*/
}
Dep /*部门表*/
{
id int 4,
name varchar(10) /*即 card 表中的 Dep */
}
现在想要一个存储过程,返回每个部门所发出的按问题级别分类汇总的违章通知记录条数.
select distinct Dep_id,color_id, count(*)
from card
group by Dep_id,color_id
比如列出安全部所发出的红色问题总数,黄色问题总数,白色问题总数.
create procedure CountColor(
@dept int,
@color int)
as
declare @cnt int
begin
select @cnt=count(*)
from card
where Dep_id = @dept and color_id = @color
end
or you can put the above sql into this proc
我现在是在程序中实现的此逻辑,我担心数据量大后会消耗太多的资源,所以请各位老大帮个忙 |
|