convert 函数来运行此查询。_row_number()over(partition by)函数实际应用

26d9d6a5376efbae7519f1f7e961c7e1.png

准备停用的组合项目

通过检索准备停用的收费项目,找到准备停用的诊疗项目,通过row_number()over(partition by columns order by columns )函数,按照项目id分组,项目编码排序。最后取出 分组后id大于1的项目。然后通过一个嵌套查询取出唯一值。

select distinct bbx05 
from  (select row_number() over(partition by c.bbx01 order by bbx04 ) id ,c.bbx01,BBX05,项目名称 
		from  bdu1 a 
			join (select bby01,BBY11 费别,bdn02 类别,BBY04 编码,BBY05 项目名称,BBY08 单位,bby25 金额,BBY31 停用时间 
				from BBY1 a join BDN1 b on a.BDN01=b.BDN01
				where BBY31='2019-06-15 23:00:00.000'
				      and BDN02='检验') b  on a.BBY01=b.BBY01
			join BBX1 c on c.BBX01=a.BBX01
			--order  by BBX04
			)a
where id>1
order by BBX05

--------------------------------------------20190811

前两天单位要搞一个什么生日提醒的,让我从数据库中检索当天过生的有哪些人。这个简单,随手就出来了。当时就想能否统计一下一个月内每天有多少人过生日,一下子就甍了,想了半天也没过去这个坎儿,过了两天突然就开窍,可以用row_number()over(partition by xx) order by xx)啊。

declare @bdate datetime,@edate datetime
set @bdate='2019-08-01 00:00:00'
set @edate='2019-08-31 00:00:00'

select  COUNT(id) 人数,bd 生日 from (
	select row_number()over(partition by right(convert(varchar(20),BD,23),5) order by BD) id
	,NAME,TEL
	,right(convert(varchar(20),BD,23),5) as BD
	,right(convert(varchar(20),GETDATE(),23),5) as CURRENT_DAY
	from BASIC_INFO 
	where 
	 right(convert(varchar(20),BD,23),5) between right(convert(varchar(20),@bdate,23),5) 
	and right(convert(varchar(20),@edate,23),5)
)a
group by bd
order by bd

80bb05b8a7da776a50658a8c0ca5c9de.png
一部分记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值