SQL-三个月之内累计消费满1000元的卡号
来源:互联网 发布:软件回归测试 编辑:程序博客网 时间:2024/04/30 22:04
想查询出三个月之内累计消费满1000元的卡号 请问这个sql怎么写啊?
开始的思路是
select 卡号,sum(消费金额) from tablewhere datediff(month,消费日期,getdate())<3
group by 卡号 having sum(消费金额)>1000
AND DATEdiff(month,MIN(消费日期),消费日期)<3
但是需求是任意三个月的消费满1000.任意这个条件开始让我很困惑,怎么才能达到任意呢
最好找到一个办法,
DECLARE @begindate DATETIME
DECLARE @enddate DATETIME
SET @begindate='20140101'
SET @enddate=GETDATE()
DECLARE @enddate DATETIME
SET @begindate='20140101'
SET @enddate=GETDATE()
create table #Temp(id varhcar(100))
WHILE(@begindate<@enddate)
BEGINinsert into Tempselect 卡号from tablewhere 消费日期 BETWEEN @begindate AND @begindate+90group by 卡号 having sum(消费金额)>1000SET @begindate=@begindate+1
END
很多问题,发散一下思维其实很好解决
问题:有如下表
求结果:
序号汇总112336410515
就是求每个汇总,是之前所有ID的汇总,
CREATE TABLE #t(id INT IDENTITY(1,1),num INT)
INSERT INTO #t(num)
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
UNION
SELECT 6
SELECT *FROM #t t
答案:
SELECT a.id,SUM(b.num)
FROM #t a
left JOIN #t b ON a.id>=b.id
GROUP BY a.id
答案2,
select ID , price1, name , total = (select sum(total) from table where id <= b.id ) from table b order by id asc
主要学习这些问题的思考方式.
thinking in set
作为一个DBA,我对"thinking in set"的解释是,
按集合理论来看待数据库
这类逻辑属于“连续聚合,滑动聚合”一类。可以看Itzik的书
有3个表,A(账号ID,IP),B(账号ID,账号),C(账号ID,角色),我输入IP,账号,角色任意一个如何查询其他几个的信息
1.思路1,通过判断变量的值,查询不同的表,再通过临时表联合查询(程序员思想)
2.使用内连接
SELECT TOP 1000 a.AccountName,b.IPAddress,c.PlayerName FROM dbo.Tbl_Account a
INNER JOIN dbo.Tbl_UserMachine B ON a.accountid=b.accountid
INNER JOIN dbo.Tbl_Player c ON a. accountid=c.accountid
WHERE (a.AccountId LIKE '%%' AND b.IPAddress LIKE '%%' AND c.PlayerName LIKE '%韩国%')
INNER JOIN dbo.Tbl_UserMachine B ON a.accountid=b.accountid
INNER JOIN dbo.Tbl_Player c ON a. accountid=c.accountid
WHERE (a.AccountId LIKE '%%' AND b.IPAddress LIKE '%%' AND c.PlayerName LIKE '%韩国%')
如一个表在很多数据库中都存在,我要同时查这几个表中的数据,用什么办法比较好,视图吗
使用跨库视图
注意其中的数据库思想!
0 0
- SQL-三个月之内累计消费满1000元的卡号
- Oracle 查询三个月之内
- 求开始累计、年初到本期累计的SQL
- 帮朋友写的一个累计SQL代码,有分季度,和总累计
- 根据日期搜索数据,例如:三天之内发表的文章,一天,十天,一个月,三个月。
- sql server 点滴累计
- SQL 求按日累计
- 三个月之内把系花搞定
- sql 循环累计一个按日期的和
- 一段累计计算与折行并用的SQL
- SQL Server 语句:每月之前的金额累计
- SQL SERVER 2008 R2的累计补丁下载地址
- 实现按月消费统计的SQL语句
- SQL 上季度三个月的第一天和最后一天
- sql语句 查询最近三个月内的数据
- SQL实现查找最近一周、一个月、三个月的数据
- SQL实现查找最近一周、一个月、三个月的数据
- SQL实现查找最近一周、一个月、三个月的数据
- 用Comparator 排序
- 增加IntrospectorCleanupListener监听器防止内存泄露
- 多线程编程:任务取消
- socket通信 客户端与服务端
- datagrview导出excel
- SQL-三个月之内累计消费满1000元的卡号
- start bluestacks模拟器中文版 v0.8.9 官方PC版
- linux脚本 随机数
- Wireless Tools for Linux
- 启动文件rc.local、/etc/bash.bashrc、~/bashrc、/etc/profile、~/.profile【转载from joyride】值得了解
- 虚拟机ubuntukylin 13.10 忘记root密码解决办法
- 使用 PVRTC 压缩格式创建纹理(Creating textures in the PVRTC compression format)
- 鞋子的风水
- 鞋子心理学