查询:将数据库-表中-若干日期-按一天24小时,将所有日期同一时间的数据求和。
学习点:将数据按小时分组求和
1 declare @BgainTime varchar(50)='2017-11-01' 2 declare @EndTime varchar(50) ='2017-12-01' 3 --每小时发药处方量 4 select '时间'=datepart(hh,ReceiveTime),'发药量'=count(*) from Prescription 5 where ReceiveTime between @BgainTime and @EndTime 6 group by datepart(hh,ReceiveTime) 7 order by datepart(hh,ReceiveTime)
如果想在where条件使用sum函数,通过having来实现:
select PrescCode from PrescriptionDetail group by PrescCode having sum(OutQuantity)>=sum(Quantity)
存在要将不同查询条件下的多个数据同时显示,使用相关子查询,下面代码做参考:
--总处理处方数量 总发药盒数 总补药盒数 select '总处理处方数量'=count(*) , '总发药盒数'=(select sum(OutQuantity/ConversionRate) from PrescriptionDetail inner join DrugInfo on DrugInfo.DrugCode=PrescriptionDetail.DrugCode inner join Prescription on Prescription.PrescCode=PrescriptionDetail.PrescCode where ReceiveTime between @BgainTime and @EndTime), '总补药盒数'=(select sum(Quantity) from ReplenishAuditInfo where OperateTime between @BgainTime and @EndTime ) from Prescription where ReceiveTime between @BgainTime and @EndTime
备注:此查询语句将三种不同查询条件下的数据同时显示,可以来自不同表