千家信息网

SQL-Serve查询多条件聚合

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,1、创建表单内容,添加数据--创建一个a表CREATE TABLE a(--设置name字段,属性varchar NAME VARCHAR(255),--设置ERP字段,属性varchar ERP
千家信息网最后更新 2025年01月21日SQL-Serve查询多条件聚合

1、创建表单内容,添加数据

--创建一个a表CREATE TABLE a(--设置name字段,属性varchar NAME VARCHAR(255),--设置ERP字段,属性varchar ERP  VARCHAR(255),--设置DATE字段,属性date DATE DATE,--设置name1字段,属性varchar NAME1 VARCHAR(255),--设置amount 字段,属性int amount int)INSERT a SELECT '张三','餐费','2019-12-11','中行','100'union all SELECT '张三','礼品','2019-12-01','中行','100'union all SELECT '张三','礼品','2019-11-12','中行','60'union all SELECT '张三','礼品','2019-12-12','美行','60'union all SELECT '张三','12','2019-12-12','中行','100'union all SELECT '李四','餐费','2019-12-12','中行','50'union all SELECT '王五','礼品','2019-12-12','中行','60'

2、查询反馈所有内容信息

SELECT * from a


3、根据多条件进行聚合汇总

--查询select --查看name字段,并设置别名 姓名name as '姓名',--添加一个 餐费字段,并且设置别名 费用类型'餐费' as '费用类型',--查看date字段,并设置别名 月份CONVERT(char(7),date,120) as '月份',--查看name1字段,并设置别名客户 名称name1 as '客户名称',--查看 统计amount字段,并且命名 金额SUM(a.amount) as '金额'--从表a查看from a--设置查询条件where --查询条件一、查询name为张三的返回值name='张三' --and进行连接多个条件AND --查询条件而、查询 ERP等于礼品或者餐费(ERP='礼品' or ERP='餐费') --连接条件AND--条件三,查询时间大于2019-12-01date >= '2019-12-01'--条件四,结合聚合函数,根据一个或者多个列对结果集进行分组,group by a,b,c的用法:--先按照a分组,如果a相同,再按照b分组,如果b相同,再按照c分组。最终统计的是最小分组的信息。group by name,CONVERT(char(7),date,120),name1

4、小结

首先where 条件,再 group by 条件、再 order by 条件

如果声明了 GROUP BY 子句,输出就分成匹配一个或多个数值的不同组里。 如果出现了 HAVING 子句,那么它消除那些不满足给出条件的组。

如果声明了 ORDER BY 子句,那么返回的行是按照指定的顺序排序的。 如果没有给出 ORDER BY,那么数据行是按照系统认为可以最快生成的方法给出的。

虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:
  SELECT select_list
  [ INTO new_table ]
  FROM table_source
  [ WHERE search_condition ]
  [ GROUP BY group_by_expression ]
  [ HAVING search_condition ]
  [ ORDER BY order_expression [ ASC | DESC ] ]
  可以在查询之间使用 UNION 运算符,以将查询的结果组合成单个结果集。

也就是说,order by放在最后面。

0