当前位置:首页 » 编程语言 » 用sql语句算住院天数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

用sql语句算住院天数

发布时间: 2023-04-05 17:57:45

Ⅰ 一张住院表内,怎么求每个人不同次住院的住院间隔!用sql语句(如图 ,假设左边有一列为姓名)

题主这个需求最好是在程序端,用编程的办法或使用报表报表工具来解决。用SQL解决代码实现的编写难度很大。

下面是使用SQL语言查出每个病人当次住院日期与上次住院日期之间的间隔。请参考下列实验:

首先创建数据数据表并插入数据

createtable病人(idintidentityprimarykey,
病人IDvarchar(10)uniquenotnull,
姓名nvarchar(10)notnull);

createtable住院记录(住院idintidentityprimarykey,
病人IDvarchar(10)notnull
foreignkeyreferences病人(病人ID),
住院日期datetimenotnull,
出院日期datetime);

Ⅱ 求:sql中解决一个表中所有两个日期之间所有天数的语句

--从开始日期到结束日期,每天一条记录,你的冯贺截止日期是2013/6/8吧,我的是mssql
CreateTableT
(
住院号varchar(10),
姓名varchar(10),
开始日期datetime,
结束日期datetime
)

insertintoTvalues('185316','杨浩','2013/1/10','2013/1/12')
insertintoTvalues('192405','张鑫','2013/3/3','2013/3/4')
insertintoTvalues('203385','冯贺','2013/6/3','2013/6/8')

--递归查询
WithTT
As
(
Select住院号,姓名,开始日期,结束日期,开始日期As日期fromT
unionall
Select住院号,姓名,开始日期,结束日期,dateadd(day,1,日期)FromTT
Wheredateadd(day,1,日期)<=结束日期
)
Select*FromTT
OrderBy住院号,日期


--这个也可以
Selectt.*,DATEADD(DD,number,开始日期)As日期
FromtCrossJoinmaster.dbo.spt_valuesb
WhereType='P'andDATEADD(DD,number,开始日期)<=结束日期