刚刚做项目的时候用到的
用户表:用户ID,用户名,余额
流水表:时间,用户ID,用户名,类型(0充值,1消费),变更金额
现在要查每个用户的日销售额和月销售额,本来最简单的方法是先把所有用户查出来,然后再c#代码中for循环中再select sum(changemoney) from liushui where userid=? 的
现在想试试看一个SQL语句 就查出来,经搜索得到如下 SQL语句:
WITH DailySales AS( select [user].id,[user].username,[user].balance, case when sum([liushui].changemoney) is NULL then 0 else sum([liushui].changemoney) end as ri_xse from [user] left join [liushui] on [user].id=[liushui].userid and [liushui].type=1 and [liushui].createtime between '2017-07-11 00:00:00' and '2017-07-11 23:59:59' group by [user].id,[user].username,[user].balance ) ,MonthSales AS( select [user].id,[user].username,[user].balance, case when sum([liushui].changemoney) is NULL then 0 else sum([liushui].changemoney) end as yue_xse from [user] left join [liushui] on [user].id=[liushui].userid and [liushui].type=1 and [liushui].createtime between '2017-07-01 00:00:00' and '2017-07-31 23:59:59' group by [user].id,[user].username,[user].balance ) select d.id,d.username,d.balance,d.ri_xse,m.yue_xse from DailySales D inner join MonthSales M on D.id = M.id
结果如下图:
查出来了,网友建议最好流水表分表,如一月一表,要不然的话以后流水表会很大很大很大。。。
先这么弄着先吧。。
相关推荐
通过上述方法,我们仅使用了一条SQL语句就实现了原本复杂的业务逻辑,不仅提高了查询效率,还使得整个过程更加清晰简洁。这种技巧在处理大量数据或复杂的业务场景时非常有用,值得开发者们学习和掌握。
本文档是关于SQL语句的教程,主要涵盖了SQL基础语法、数据查询、数据处理、数据操作、进阶SQL语句等知识点。为了方便理解和操作,本文档按逻辑顺序介绍了各个知识点,并举例说明了它们在实际情况中的应用。 在开始...
### SQL语句教程知识点详解 #### 一、SELECT语句 **定义与作用:** - `SELECT` 是SQL中最常用的语句之一,主要用于从数据库表中检索数据。 - **基本语法**: ```sql SELECT column_name(s) FROM table_name; ```...
这段代码首先定义了一个子查询`t`,用于筛选出销售额大于1万的书籍,然后将其与`authors`和`titleauthor`表联接起来,最终输出作者的全名和书名。 #### 三、高级查询技巧 ##### 1. 使用聚合函数 聚合函数用于对一...
- 查询 `Store_Information` 表中销售额(`sales`)高于平均销售额的记录: ```sql SELECT * FROM Store_Information WHERE sales > (SELECT AVG(sales) FROM Store_Information); ``` #### 十六、UNION操作符 *...
考虑一个名为 `Store_Information` 的表,该表包含以下列:`store_name`(商店名称)、`sales`(销售额)和 `date`(日期)。为了获取所有商店的名称,我们可以使用以下 SQL 命令: ```sql SELECT store_name FROM ...
### SQL查询语句详解 #### 一、概述 SQL(Structured Query Language)是一种用于管理和...SQL作为一种强大的数据管理工具,在日常工作中具有广泛的应用价值,希望读者能够在实践中不断深化对SQL的理解和运用能力。
### SQL语句操作详细教程知识点总结 #### 一、SQL指令概述 - **定义与作用**:SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。它支持数据查询、更新、创建表、删除记录等多种功能。无论...
`WHERE`子句则用于根据指定的条件过滤结果,如`SELECT store_name FROM Store_Information WHERE Sales > 1000`,这条语句将返回销售额超过1000的店铺名称。`WHERE`后的条件可以包括比较操作符(如`>`, `, `=`, `!=`...
` 此命令用于从`Store_Information`表中选取销售额大于1000且日期为'Jan-05-1999'的记录。 #### 三、表格处理 - **创建表格**:使用`CREATE TABLE`语句创建新的表格。 - **语法**:`CREATE TABLE table_name ...
本文旨在深入解析“SQL语句经典教程,sql语言精华”中提及的关键知识点,涵盖SQL的基础操作至进阶技巧,帮助读者系统掌握SQL的核心功能。 #### SELECT——数据检索的基础 `SELECT`语句是SQL中最基本也是最常用的...
子查询(嵌套查询)在查询中嵌入另一个查询,EXISTS检查是否存在满足条件的记录,CASE语句用于条件判断,算排名、算中位数、算总合百分比和算累积总合百分比等统计运算进一步丰富了数据分析的能力。 通过这个教程,...
`@@ROWCOUNT`系统变量可用于获取上一条SQL语句影响的行数,这对于跟踪数据更新或者计算结果集大小非常有用。例如,在一个循环更新操作中,可以检查`@@ROWCOUNT`来确定已处理了多少行。 5. **查询时间**: 查询...
例如,从“Store_Information”表中查找销售额高于$1,000或在$500至$275之间的店铺,SQL语句如下: ```sql SELECT store_name FROM Store_Information WHERE Sales > 1000 OR (Sales >= 500 AND Sales ); ``` 注意...
- 向`Stores`表中插入一条新记录: ```sql INSERT INTO Stores (store_id, store_name, location) VALUES (1, 'LosAngeles', 'California'); ``` ##### 2. UPDATE - **用途**:更新表中的记录。 - **基本语法*...
**SQL(Structured Query Language)** 是一种用于管理和处理关系型数据库的标准语言。本教程旨在帮助初学者乃至有一定基础的专业人士掌握 SQL 的核心概念与实践技巧。 ##### SELECT - **用途**:`SELECT` 是最...
例如,计算每个部门的员工总数、销售额总和等。通过与聚合函数结合使用,可以实现更复杂的统计分析。 以上介绍了SQL语言中的一些基础和进阶操作,这些语句在日常开发和维护数据库的过程中非常实用。掌握它们不仅...
- 如果需要查询 `Store_Information` 表中销售额(`sales`)大于1000的店铺名称,可以使用如下SQL语句: ```sql SELECT store_name FROM Store_Information WHERE sales > 1000; ``` #### 四、AND与OR运算符 **...
本教程将深入讲解SQL中最常用的语句,帮助初学者和经验丰富的数据仓库从业者快速掌握SQL的基本用法。 SQL指令部分主要涵盖以下内容: 1. **SELECT语句**:这是SQL中最重要的一个语句,用于从数据库中选择并返回所...
### 精通Oracle的SQL语句 #### 一、SQL指令详解 ##### SELECT - **功能**: `SELECT` 是SQL中最基础也是最重要的指令之一,主要用于从数据库中选取数据。 - **语法**: `SELECT column_name(s) FROM table_name ...