如何用sqlserver查看姓
select*fromtablenamewhereleft(stuname,1)in(Zhang,Chen,Huang)orderbystuname或select*fromtablenamewherestunamelikeZhang或stunamelikeCh
sql如何查询明细账及月计累计?
其实这是一个很基础的知识。
下面的例子:
DDL:
创建表`TBL_fin`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENT,`fin_date`date缺省NULL,`TrueName`varchar(128)缺省NULL,`Money`decimal(10,2)unsigned缺省NULL,PRIMARYKEY(`id`))ENGINEInnoDB缺省CHARSETutf8
插入一堆测试数据:
插入;TBL_fin;值(1,2018-01-01,晓明,100.00)
插入到;TBL_fin;values(2,2018-01-01,晓明,100.00)
插入到;TBL_fin;values(3,2018-01-01,晓明,100.00)
插入到;TBL_fin;values(4,2018-01-02,晓明,100.00)
插入到;TBL_fin;值(5,2018-01-03,晓明,100.00)
插入到;TBL_fin;values(6,2018-01-05,小红,100.00)
插入到;TBL_fin;values(7,2018-01-06,小红,100.00)
插入到;TBL_fin;values(8,2018-01-08,小红,100.00)
插入到;TBL_fin;values(9,2018-02-08,小红,100.00)
我Nsertinto`TBL_fin`values(10,2018-03-08,小红,100.00)
插入到;TBL_fin;values(11,2018-04-08,小红,100.00)
插入到;TBL_fin;values(12,2018-05-08,小红,100.00)
插入到;TBL_fin;values(13,2018-06-08,小红,100.00)
插入到;TBL_fin;values(14,2018-06-08,晓明,3.40)
插入到;TBL_fin;values(15,2018-06-08,晓明,398.49)
插入到;TBL_fin;values(16,2018-06-08,晓明,982.24)
插入到;TBL_fin;values(17,2018-06-08,晓明,715.72)
插入;TBL_fin;值(18,2018-05-08,晓明,631.88)
插入到;TBL_fin;values(19,2018-05-08,晓明,12.25)
插入到;TBL_fin;values(20,2018-05-08,晓明,165.59)
插入到;TBL_fin;values(21,2018-05-08,晓明,791.23)
插入到;TBL_fin;values(22,2018-04-08,晓明,459.35)
插入到;TBL_fin;values(23,2018-04-08,晓明,923.06)
插入到;TBL_fin;values(24,2018-04-08,晓明,237.28)
插入到;TBL_fin;values(25,2018-03-08,晓明,417.18)
插入到;TBL_fin;values(26,2018-03-08,晓明,374.10)
插入`tbl_f在;值(27,2018年3月8日,小明,618.93)
插入到;TBL_fin;values(28,2018-03-08,晓明,972.37)
插入到;TBL_fin;values(29,2018-02-08,晓明,5.04)
插入;tbl_fin;值(30,2018-02-08,晓明,108.08)
插入;TBL_fin;值(31,2018-02-08,晓明,525.31)
插入到;tbl_fin;值中(32,2018-01-08,晓明,302.32)
插入到;TBL_fin;values(33,2018-01-08,晓明,935.65)
插入;tbl_fin;值(34,2018-01-08,晓明,771.28)
插入到;tbl_fin;值中(35,2018-01-09,晓明,49.48)
插入到;TBL_fin;values(36,2018-01-09,小红,933.54)
插入到;TBL_fin;values(37,2018-01-09,小红,519.26)
插入到;TBL_fin;values(38,2018-01-09,小红,795.69)
插入到;TBL_fin;values(39,2018-01-09,小红,420.67)
然后我们就可以进入正题了。
获取明细账:1。根据用户获取每月日志的内容:
假设一个用户等于"小明"一个月等于"2018-01"。
Select*fromTBL_fin其中真名小明和date_format(fin_date,%y-%m)2018-01orderbyfin_dateASC。
其中,
真名小明的意思是用真名小明过滤记录。
DATE_FORMAT(fin_date,%Y-%m)表示将fin_date的日期格式格式化,输出为yyyy-mm。
命令BYfin_dateASC表示根据fin_date将记录从小到大排序。
得到的结果是小明2018年1月s详解。
其次,是每月累计账户:假设你需要得到小明每月账单。
Select真名,sum(money)asmoney,date_format(fin_date,%y-%m)asdatemonthfromTBL_fin其中真名小明groupbyconcat(真名,date_format(fin_date,%y-%m))orderbydatemonthASC
SUM(Money)asMoney的意思是数(加)钱的总数。
Date_format(fin_date,%y-%m)作为日期月,它将日期格式化为年和月。
Groupbyconcat(真名,date_format(fin_date,%y-%m))这里需要反汇编一下才能理解。
(TrueName,date_format(fin_date,%y-%m))表示组合真实姓名和年、月、日的字符。
BY是指按此对统计数据进行分组。
结果是小明的每月累计账单:
以上只是初步的SQL教程。测试环境是MYSQL5.5.47,SQLServer的编写不一样。
另外,一般情况下,一般用于统计或筛选,建议加一个指数。尤其是金融的统计计算。