存儲過程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 參數進行 數據返回才對。
