最近项目遇到了一些sql代码不是很理解 就贴出来 加上自己的注释
举个例子是 分组语句 :
SELECT hosid AS 医院编号, hosname AS 医院名称, depid AS 科室编号, depname AS 科室名称,
docid AS 医生编号, docname AS 医生姓名, medid AS 药品编号, medname AS 药品名称,
MAX(medspec) AS 药品规格,CONVERT(int,AVG(medprice)) AS 药品单价, MAX(medcategory) AS 药品类别,
CONVERT(int,SUM(amount)) AS 用药数量, CONVERT(int,SUM(amount) * AVG(medprice)) AS 药品总价,
DATENAME(Month,MAX(use_date)) AS 月份
FROM dbo.MedUse
WHERE use_date = ‘2017.10.1’ and hosname = ‘南阳二院’ and depname = ‘血液肿瘤科’ and docname = ‘邹乐乐’ and medname = ‘脂肪乳针(中长链C8-24)’
GROUP BY hosid,depid,docid,medid,hosname,depname,docname,medname //这8个列同时一样的时候为一组
ORDER BY depid,depname,docname //按升序排序 如果第一个列相等就看第二个,依次来看
MAX 之前的都是要排序的字段 as后面的是用来代替as前面显示在列表中的列值 max是挑出里面值最大的那个数 CONVERT是对数值的操作
如CONVERT(int,AVG(medprice))是 求平均值并转化为int型 CONVERT(int,SUM(amount))是求和并转化为int型 DATENAME(Month,MAX(use_date))是日期转化
然后每一组里面就一行相当于创建了一个新行 因为有M
数据库部分语句(持续更新)
最新推荐文章于 2022-04-04 14:13:13 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)