❶ 如何用sql語句查詢宿舍可用床位
方法是:
1、用戶登錄界面學生通過用戶名和密碼獲取登錄許可權,宿舍樓管理員通過用戶名和密碼獲取登錄許可權。
2、學生用戶界面本宿舍樓的學生就能查詢其所在的宿舍床位號。
❷ sql統計一個月醫院床位的使用率。
8. 病床使用率
含義:表示病床的使用效果。
公式:實際佔用總床日 / 實際開放總床日 * 100%
說明:該指標越高反映病床利用率高。
❸ sql中如何統計每一天同一醫院的住院病人
SELECT DAY,網點名稱,C.RS FROM (
SELECT convert (varchar(12),DATEADD(DAY,number,搜索開始時間),23) AS DAY
FROM master.dbo.spt_values
WHERE type = 'P'
AND number<=DATEDIFF(day,搜索開始時間,搜索結束時間))AS A
CROSS apply
(select 網點名稱,COUNT(姓名)AS RS from 表 AS B
WHERE A.DAY BETWEEN B.入院登記時間 AND B.出院登記時間
GROUP BY 網點名稱)C
❹ 求助 sql server分組統計問題
你是來搞笑的么。。。。。
兩個語句中最後面的一個左連是費的。
上面的語句用he.idISNOTNULL做where條件,又用he.id排序。但是he.id本來就等於h.ORDERED_DOCTOR_ID
hrm_employee這個員工表屬於基礎信息,正常價格是不帶delete功能的。所以根本沒必要存在。這個連表。
然後就是解決你上面會上面和下面兩個SQL不一致的問題了
問題出現再你h和d兩個聯表上。從你第一段SQL看出,S_ZYFYLB_DM是復數存在的,也就是有笛卡兒積。然而你「參與列數」欄位居然加了 distinct 這個關鍵字。
distinct是全部列數數據相同才會觸發唯一機制。所以你第一個SQL的distinct觸發無效。
第二個SQL只有COUNT統計,肯定能觸發distinct了。
所以就變成總行數有差異了。
❺ SQL語句就診重復人次查詢,請教各位大師。
把保號(grbh)和時間也加入group by ,就可以實現相同參保號(grbh)同一天在同一家醫療機構(yymc)(,jgmc)就診的人次數。不知道我理解的對不對。
select grbh,convert(varchar(10),bxrq,120),yymc as '醫療機構',jgmc as '機構代碼',count(grbh) as '人次數'
from nb_yyzd【醫院字典】,nb_bxjl【報銷記錄表】,nb_bxjl2【報銷記錄表2】
where yybh=jgmc【醫院字典的醫院編號=報銷記錄表2的機構代碼】
and bxlx=1【報銷類型】
and bxfs=2【報銷方式】
and glzf is null【作廢記錄的刪除條件】
and bxrq>='2013-01-01'【開始查詢時間】
and bxrq<'2013-08-01'【終止查詢時間】
and nb_bxjl2.bxid=nb_bxjl.bxid【報銷記錄表與報銷記錄表2的bxid(報銷ID)相關聯】
and grbh in (select grbh from nb_bxjl group by grbh,CONVERT( CHAR(20),bxrq, 111 ) having count(grbh)>1)
group by grbh,yymc,jgmc,convert(varchar(10),bxrq,120)
❻ 請用sql2005幫做一個資料庫表(比較簡單的)100分,做的好可以追加的,謝謝.
你要建表嗎????
病人(住院號,姓名,性別,地址,病房編號,床位號,入院日期,出院日期)
醫生(醫生工號,姓名,職稱)
護士(護士工號,姓名,職稱,手術室編號)
病床(病床編號,床位號,類型,空床標志,護士工號)
手術室(手術室編號,類型)
手術(手術標識號,類型,日期,時間,費用,手術室編號,醫生工號,住院號)
診斷書(診斷書編號,科別,診斷,醫生工號,住院號)
收據(收據編號,項目,金額,收款員,日期,住院號)
協助(手術標識號,醫生工號,角色)
處方(處方單號,序號,葯品名稱,規格,數量,費用,住院號,醫生工號)
這不都有了關系了嗎?你直接建立就行,至於欄位類型,主鍵,外鍵你可以自己設置一下啊
❼ sql統計醫院一段時間床位的使用率。
如果是ORACLE的,我會寫。
select b.tdate, nvl(a.inqty,0) as inqty
from
(select count(1) as inqty, trunc(入院日期) as tdate
from table
group by trunc(入院日期)) a,
(select to_date('2011-03-01','YYYY-MM-DD') + rownum - 1 as tdate
from all_objects
where rownum <= (to_date('2011-03-05','YYYY-MM-DD') - to_date('2011-03-01','YYYY-MM-DD') + 1) ) b
where b.tdate = a.tdate(+)
order by b.tdate
以上語法,a表是根據日期分組,取每天入院的人數,但是,這個日期是不連續的,而b表是構建一個時間段的連續日期,這樣把b表和a表做一個外連接,就可以得到這個連續時間段每天入院的人數了。
如果是SQLSERVER等資料庫,用的不太多,不清楚b表該怎麼構建。2005以上的版本好像有一個row_number() 這個函數,可以利用這個來構造連續的日期。
似乎可以這么寫,2005以上版本,不太確定,這個是仿著ORACLE寫的,也沒有環境檢查,語法可能有點錯誤,不過就是這個意思。
select b.tdate, a.inqty
from
(select count(1) as inqty, 入院日期 as tdate
from table
group by 入院日期) a,
(select dateadd(dd, rownum - 1,convert(datetime,'2011-03-01',121)) as tdate
from (SELECT Row_Number() OVER (partition by id ORDER BY id desc) rownum FROM sysobjects ) all_object
where rownum <= datediff(dd,convert(datetime,'2011-03-15',121),convert(datetime,'2011-03-01',121)) + 1 ) b
where b.tdate = a.tdate(+)
order by tdate