存储过程count
⑴ 创建一个存储过程proc_count ,能够统计男教师,女教师的人数,并返回男教师,女教师人数。
CREATE PROCEDURE P1(@M INT OUTPUT,@W INT OUTPUT) AS
SELECT @M=COUNT(CASE WHEN 性别='男' THEN 1 END),@W=COUNT(CASE WHEN 性别='女' THEN 1 END) FROM 教师表
GO
调用方法:
DECLARE @M INT,@W INT
EXEC P1 @M OUTPUT,@W OUTPUT
SELECT @M AS 男教师人数,@W AS 女教师人数
⑵ mysql 数据库中有一张 交易记录表,存储过程中想通过count函数查出30天内的交易数、60天的交易数
可直接用嵌套查询。
方法如下:
如数据:
id name
1 a
1 b
2 c
2 d
3 e
3 f
3 g
3 h
select count(t.counts) from
(select id,count(*) counts from 表名 group by id) t
这样得到的结果就是3。
⑶ 用SQL语言,写出.创建存储过程EmpCount,它的功能是根据给定的部门名称统计该部门的员工人数。
GO
create procere EmpCount
@DepartName varchar(50),
@EmpPersons int out
as
select @EmpPersons=count(*) from 员工表 where 部门名称=@DepartName
GO
条件给的太笼统,自己改改吧!!
⑷ 怎么在存储过程中把 select count from tb1的返回值赋给变量
int count=Convert.Toint32(cmd.ExecuteScalar());
cmd.executescalar()得到的结果是数据表的第一行第一列的数据,
其结果是object类型的,需要强制转换为int类型。
⑸ 存储过程怎么用在什么情况下要用到存储过程
举个例子吧,用户登录模块:先创建存储过程CREATE PROCEDURE Prc_Ad_Login @AdName varchar(32), @AdPwd nchar(32), @Count int output, @Err varchar(64) output ASif exists(select intsuid from sysuser where varsuname=@AdName)begindeclare @suid int declare @dteErrs datetime declare @npwd nchar(32) declare @Lock bit declare @intErr int declare @Errpart int declare @ErrCount int select @suid=intsuid, @dteErrs=dteErr,@intErr=intErrCount,@npwd=narsupwd,@lock=bitLock from sysuser where varsuname=@Adname select @ErrCount=intsuerrcount,@Errpart=intsuerrminute from sysbasic if(@npwd=@Adpwd)beginif(@Lock=1)beginselect @Count=2 select @Count=0endendelsebeginif(@Lock=0)beginif(datediff(n,@dteErrs,getdate())<@Errpart)beginif(@intErr<@ErrCount)beginupdate sysuser set intErrCount=intErrCount+1,dteErr=getdate() where intsuid=@suid if(@intErr=(@ErrCount-1))beginselect @Count=4 select @Err='登录错误过多,你的帐号被系统暂时锁定!'endelsebeginselect @Count=1 select @Err='用户名或密码错误!'endendelsebeginupdate sysuser set dteErr=getdate() where intsuid=@suid select @Count=3 select @Err='你的帐号在一定时间内不允许登录!'endendelsebeginupdate sysuser set dteErr=getdate(),intErrCount=1 where intsuid=@suid select @Count=1
⑹ SQL 存储过程 count()计算相同id的行数,然后用sum如何把相同id的行数相加
再套一层
select sum(c1) from (
select count (*) c1 from [caigoujinhuodetail(采购进货详细)]
group by [caigoujinhuodetail(采购进货详细)].spdm,[caigoujinhuodetail(采购进货详细)].spggdm
) a
⑺ sql中count函数的使用
COUNT() 函数返回匹配指定条件的行数。
SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
SELECT COUNT(column_name) FROM table_name;
SQL COUNT(*) 语法
COUNT(*) 函数返回表中的记录数:
SELECT COUNT(*) FROM table_name;
SQL COUNT(DISTINCT column_name) 语法
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name;
注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。
SQL COUNT(column_name) 实例
下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:
实例
SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;
SQL COUNT(*) 实例
下面的 SQL 语句计算 "access_log" 表中总记录数:
实例
SELECT COUNT(*) AS nums FROM access_log;
执行以上 SQL 输出结果如下:

⑻ 存储过程查询select count(*)from table返回的是bool类型的怎么回事
1. 别名 不应该 用 单引号括起来, 应该是 :
SELECT COUNT(*) sums
FROM [pos].[参数_黑名单_区域] WHERE 1=1
2. 存储过程应该有用 out 参数进行 数据返回才对。
