写一段方便的SQL 循环查每一天的数据

declare @recd int,@i int,@a int,@count int,@day1 date,@day2 date,@days int
set @recd=0
set @i=0
set @a=0
set @day1=‘2014-8-24‘
set @day2=‘2014-8-25‘
set @days=12 --设定12天
create table #tpp
(
    ID   int IDENTITY (1,1)     not null, --创建列ID,并且每次新增一条记录就会加1
    dateshow     date,
    dateend   date,
    num     int,
    paynum  int,
    paymoney int,
    payordernum int
    primary key (ID)      --定义ID为临时表#Tmp的主键
);
while(@i<@days)
begin

    if @i>0
    begin
    set @a=1
    end
    set @day1=DATEADD(DAY,@a,@day1)
    set @day2=DATEADD(DAY,@a,@day2)

    SELECT userID,COUNT(1) as danshu,sum(payMoney) as sump
into #pp FROM [表] where paytime between @day1 and @day2 and status>0 group by userID
  insert #tpp  select @day1 as day1,@day2 as day2,@i,(select COUNT(1) from #pp )as 充值人数,(select SUM(sump) from #pp) as 充值金额,(select SUM(danshu)   from #pp)as 充值单数
   drop table #pp

set @i=@i+1
end
select * from #tpp
drop table #tpp

每天的查询需求太频繁,想了一个办法把所有事情交给计算机来完成,好久不来。今天上来转转

时间: 2024-09-05 04:47:46

写一段方便的SQL 循环查每一天的数据的相关文章

PL/SQL Developer查詢已經執行過的SQL語句記錄 Ctrl+E

PL/SQL Developer查詢已經執行過的SQL語句記錄 最近提数比较多,没有已存在的脚本信息,就手工写呀... 一次性打开了多个提数脚本文件,结果执行完后把脚本保存好了,但是最后的整理其它脚本时 把原来的存档的脚本给不小心替换掉了 还ctrl+s保存了,抱着侥幸心理 可能我重新打开会回来吧 结果不会 重新打开脚本是替换之后的脚本信息.... 啊~ 我辛辛苦苦写的提数脚本就这么没了没了...   惨兮兮....  然后就去想办法看看有没有可能能将自己昨天执行的sql拿出来再做存档(免得下次

PHP写一段代码,确保多个进程同时写入一个文件成功

这个需求是在软件设计过程常见的加锁.学计算机的同学都应该知道,这个是在<计算机操作系统>课程上有这个知识点.主要要考虑的是进程的同步,也就是进程对资源的互斥访问.OK,用程序说话吧! <?phpfunction writefile( $filename, $data ){ $fp = fopen( $filepath, 'a' );   //以追加的方式打开文件,返回的是指针 do{   usleep( 100 );  //暂停执行程序,参数是以微秒为单位的 }while( !flock

易语言怎样写双线程?一个线程循环找图。一个线程循环按键F2。

易语言怎样写双线程? 一个线程循环找图.一个线程循环按键F2. // .程序集变量 参数, 整数型 .程序集变量 线程句柄1, 整数型 .程序集变量 线程句柄2, 整数型 启动线程 (&子程序1, 参数,线程句柄1) 启动线程 (&子程序2, ,线程句柄2) // .子程序 子程序1 .参数 参数1, 整数型 信息框 (参数1, 0, ) 信息框 (“这是线程1的例子”, 0, ) // .子程序 子程序2 信息框 (“这是线程2的例子”, 0, ) // // 注意: 凡调用到COM接口

写一段程序,求1+2*2+3*3+n*n的值 Java

public static void main(String[] args) { // 1*1+2*2+3*3+n*n int n = 40; // 1 5 14 30 55 // 1 2 3 4 5 // 方式一 int c = 0; for (int i = 1; i <= n; i++) { int c1 = count(i); c = (c1 + i * i); } System.out.println(c); // 方式二 c = 0; c = n * (n + 1) * (2 * n

sql 循环处理表数据中当前行和上一行中某值相+/-

曾经,sql中循环处理当前行数据和上一行数据浪费了我不少时间,学会后才发现如此容易,其实学问就是如此,难者不会,会者不难. 以下事例,使用游标循环表#temptable中数据,然后让当前行和上一行中的argument1 相加 存放到当前行的 argument2 中,比较简单. --drop table #temptable create table #temptable ( argument1 int, argument2 int, argument3 datetime ) declare @r

SQL 速查表

非原创,转自Github:enochtangg/quick-SQL-cheatsheet SQL 语句用法的速查表. 内容 查找数据的查询 修改数据的查询 聚合查询 连接查询 视图查询 修改表的查询 1. 查找数据的查询 SELECT: 用于从数据库中选择数据 SELECT * FROM table_name; DISTINCT: 用于过滤掉重复的值并返回指定列的行 SELECT DISTINCT column_name; WHERE: 用于过滤记录/行 SELECT column1, colu

sql 循环 ,随机数,循环插入一年数据

--循环插入一年的时间 DROP TABLE #temp CREATE TABLE #temp (date DATETIME); DECLARE @year INT SET @year=2019; WITH a1 AS ( SELECT CAST(RTRIM(@year)+'-01-01' AS DATETIME) date UNION ALL SELECT DATEADD(dd,1,date) FROM a1 WHERE DATEPART(yy,DATEADD(dd,1,date))=@yea

转:SQL SERVER数据库中实现快速的数据提取和数据分页

探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名 [Gid] [int] IDENTITY (1, 1) NOT NULL , --本表的id号,也是主键 [title] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,  --红头文件

【转载】SQL Server - 使用 Merge 语句实现表数据之间的对比同步

原文地址:SQL Server - 使用 Merge 语句实现表数据之间的对比同步 表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup, Condition Split 等多种 Task 的组合来实现表数据之间的同步.在这里 "同步" 的意思是指每次执行一段代码的时候能够确保 A 表的数据和 B 表的数据始终相同. 可以通过 SQL Se