如何写SQL语句,江湖!!!!
统计任务完成情况:
有三张表
1.Tb_Users(用户)
Key	Field Name	属性	NOT NULL	默认值	字段说明
●	UserId	int 	○		用户ID(自动生成)
	UserCount	varchar(50)	○		用户帐号
	UserName	varchar(50)	○		用户姓名
	UserPwd	varchar(20)	○		登陆密码
	RoleId	int	○	外键	用户角色(角色表外键),(0:系统管理员 1:主管 2:管理员)
	StateId	int	○	外键	用户状态(0:正常 1:禁用)
2.Tb_Task(任务表)
●	TaskId	int	○		任务ID(自动生成)
	TaskName	varchar(50)	○		任务名称
	TaskContent	varchar(max)	○		任务内容
	TaskDemand	varchar(max)	○		任务要求
	CreatedTime	datetime	○		下达时间
	EndTime	datetime	○		截止时间
	DelayTime	datetime			延至期限
	Alloter	varchar(50)	○		任务分配人(默认是主管)
	UserId	int	○	外键 	任务执行人(User表)
	FinishTime	datatime	○		实际完成时间
	TaskStatusId	int	○	外键 	任务状态(任务状态表)(未执行、执行中、已完成、未完成 、延时)
	Remark	varchar(max)			备注
3.Tb_TaskCheck(任务检查表)
Key	Field Name	属性	NOT NULL	默认值	字段说明
●	TaskCheckId	int	○		ID(自动生成)
	TaskId	int	○	 	任务ID
	Checker	varchar(50)	○		任务检查人(默认为主管)
	CheckStatusName	varchar(10)	○		检查状态(未检查、已检查)
	CheckResult	varchar(10)	○		检查结果(合格、整改)
	CheckSuggestion	varchar(max)			检查意见
任务执行人  分配任务数         完成任务数           合格任务数 ?(不会)     合格率?(不会)
1	     6	                1
2	     8	                5
3	     5	                2
4	     5	                0
5	     1	                0
6	     1	                0
我只会统计前3个,代码如下:
select UserId as 任务执行人 ,COUNT(TaskId) as 分配任务数
   ,SUM(CASE WHEN TaskStatusId=3 THEN 1 ELSE 0 END) AS 完成任务数
from Tb_Task group by UserId  
合格任务数 貌似要统计任务检查表里面的select TaskId,SUM(CASE WHEN CheckResult='合格' THEN 1 ELSE 0 END) AS 合格任务数
  from Tb_TaskCheck group by TaskId
合格率 = 完成任务数/分配任务数 不知道该用什么函数实现 ,
不知道如何写SQL语句,才能实现以上页面????????????求高人相助!!!!!!
------解决方案--------------------
SQL code
合格率=ltrim(cast(SUM(CASE WHEN TaskStatusId=3 THEN 1 ELSE 0 END)/COUNT(TaskId) as dec(18,2)))+'%'
------解决方案--------------------
sum聚合case判断