`
floger
  • 浏览: 213474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql的大全代码(5)

阅读更多

复杂年月处理.sql

SQL code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->--定义基本数字表 declare @T1 table(代码 int,名称 varchar(10),参加时间 datetime,终止时间 datetime) insert into @T1 select 12,'单位1','2003/04/01','2004/05/01' union all select 22,'单位2','2001/02/01','2003/02/01' union all select 42,'单位3','2000/04/01','2003/05/01' union all select 25,'单位5','2003/04/01','2003/05/01' --定义年表 declare @NB table(代码 int,名称 varchar(10),年份 int) insert into @NB select 12,'单位1',2003 union all select 12,'单位1',2004 union all select 22,'单位2',2001 union all select 22,'单位2',2002 union all select 22,'单位2',2003 --定义月表 declare @YB table(代码 int,名称 varchar(10),年份 int,月份 varchar(2)) insert into @YB select 12,'单位1',2003,'04' union all select 22,'单位2',2001,'01' union all select 22,'单位2',2001,'12' --为年表+月表数据处理准备临时表 select top 8246 y=identity(int,1753,1) into #tby from (select id from syscolumns) a, (select id from syscolumns) b, (select id from syscolumns) c --为月表数据处理准备临时表 select top 12 m=identity(int,1,1) into #tbm from syscolumns /*--数据处理--*/ --年表数据处理 select a.* from( select a.代码,a.名称,年份=b.y from @T1 a,#tby b where b.y between year(参加时间) and year(终止时间) ) a left join @NB b on a.代码=b.代码 and a.年份=b.年份 where b.代码 is null --月表数据处理 select a.* from( select a.代码,a.名称,年份=b.y,月份=right('00'+cast(c.m as varchar),2) from @T1 a,#tby b,#tbm c where b.y*100+c.m between convert(varchar(6),参加时间,112) and convert(varchar(6),终止时间,112) ) a left join @YB b on a.代码=b.代码 and a.年份=b.年份 and a.月份=b.月份 where b.代码 is null order by a.代码,a.名称,a.年份,a.月份 --删除数据处理临时表 drop table #tby,#tbm


交叉表.sql

SQL code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->--示例 --示例数据 create table tb(ID int,Time datetime) insert tb select 1,'2005/01/24 16:20' union all select 2,'2005/01/23 22:45' union all select 3,'2005/01/23 0:30' union all select 4,'2005/01/21 4:28' union all select 5,'2005/01/20 13:22' union all select 6,'2005/01/19 20:30' union all select 7,'2005/01/19 18:23' union all select 8,'2005/01/18 9:14' union all select 9,'2005/01/18 18:04' go --查询处理: select case when grouping(b.Time)=1 then 'Total' else b.Time end, [Mon]=sum(case a.week when 1 then 1 else 0 end), [Tue]=sum(case a.week when 2 then 1 else 0 end), [Wed]=sum(case a.week when 3 then 1 else 0 end), [Thu]=sum(case a.week when 4 then 1 else 0 end), [Fri]=sum(case a.week when 5 then 1 else 0 end), [Sat]=sum(case a.week when 6 then 1 else 0 end), [Sun]=sum(case a.week when 0 then 1 else 0 end), [Total]=count(a.week) from( select Time=convert(char(5),dateadd(hour,-1,Time),108) --时间交界点是1am,所以减1小时,避免进行跨天处理 ,week=(@@datefirst+datepart(weekday,Time)-1)%7 --考虑@@datefirst对datepart的影响 from tb )a right join( select id=1,a='16:00',b='19:59',Time='[5pm - 9pm)' union all select id=2,a='20:00',b='23:59',Time='[9pm - 1am)' union all select id=3,a='00:00',b='02:59',Time='[1am - 4am)' union all select id=4,a='03:00',b='07:29',Time='[4am - 8:30am)' union all select id=5,a='07:30',b='11:59',Time='[8:30am - 1pm)' union all select id=6,a='12:00',b='15:59',Time='[1pm - 5pm)' )b on a.Time>=b.a and a.Time<b.b group by b.id,b.Time with rollup having grouping(b.Time)=0 or grouping(b.id)=1 go --删除测试 drop table tb /*--测试结果 Mon Tue Wed Thu Fri Sat Sun Total -------------- ----- ----- ----- ----- ----- ------ ---- ------- [5pm - 9pm) 0 1 2 0 0 0 0 3 [9pm - 1am) 0 0 0 0 0 0 2 2 [1am - 4am) 0 0 0 0 0 0 0 0 [4am - 8:30am) 0 0 0 0 1 0 0 1 [8:30am - 1pm) 0 1 0 0 0 0 0 1 [1pm - 5pm) 1 0 0 1 0 0 0 2 Total 1 2 2 1 1 0 2 9 (所影响的行数为 7 行) --*/


任意两个时间之间的星期几的次数-横.sql

SQL code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_weekdaycount]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_weekdaycount] GO /*--计算任意两个时间之间的星期几的次数(横向显示) 本方法直接判断 @@datefirst 做对应处理 不受 sp_language 及 set datefirst 的影响 --邹建 2004.08(引用请保留此信息)--*/ /*--调用示例 select * from f_weekdaycount('2004-9-01','2004-9-02') --*/ create function f_weekdaycount( @dt_begin datetime, @dt_end datetime )returns table as return( select 跨周数 ,周一=case a when -1 then case when 1 between b and c then 1 else 0 end when 0 then case when b<=1 then 1 else 0 end +case when c>=1 then 1 else 0 end else a+case when b<=1 then 1 else 0 end +case when c>=1 then 1 else 0 end end ,周二=case a when -1 then case when 2 between b and c then 1 else 0 end when 0 then case when b<=2 then 1 else 0 end +case when c>=2 then 1 else 0 end else a+case when b<=2 then 1 else 0 end +case when c>=2 then 1 else 0 end end ,周三=case a when -1 then case when 3 between b and c then 1 else 0 end when 0 then case when b<=3 then 1 else 0 end +case when c>=3 then 1 else 0 end else a+case when b<=3 then 1 else 0 end +case when c>=3 then 1 else 0 end end ,周四=case a when -1 then case when 4 between b and c then 1 else 0 end when 0 then case when b<=4 then 1 else 0 end +case when c>=4 then 1 else 0 end else a+case when b<=4 then 1 else 0 end +case when c>=font-weight: bold; color: #8
分享到:
评论

相关推荐

    SQL代码生成器_sql代码生成_sqlserver_

    SQL代码生成器是一种工具,它自动化了创建SQL脚本的过程,极大地提高了开发人员的效率。在SQL Server环境下,这样的工具尤为重要,因为SQL Server数据库的复杂性和规模常常需要编写大量复杂的查询和数据操作语句。本...

    最新ASP通用防SQL注入代码

    5. **存储过程**:使用存储过程执行数据库操作,因为它们能更好地封装和保护SQL逻辑,减少直接暴露给用户的SQL代码。 6. **最小权限原则**:数据库连接应使用具有最小权限的用户账户,以限制攻击者即使成功注入也...

    SQL Server错误代码大全.doc

    SQL Server 错误代码大全 概述: SQL Server 错误代码大全是一份详细的数据库错误代码大全,涵盖了 SQL Server 中各种可能的错误代码和解决方法。该大全旨在帮助开发者和 DBA 快速地定位和解决 SQL Server 中出现的...

    SQL代码大全

    SQL代码大全 SQL 代码大全是一本适合新手入门的指南,旨在帮助读者快速掌握 SQL Sever 的基础知识和实践技能。下面我们将从这个大全中提炼出一些重要的知识点,帮助读者更好地理解和应用 SQL。 数据库的应用 ...

    SQL错误代码大全

    收集汇总了设计者在SQL 编程中所有出现的错误代码提示大全 希望对大家有所帮助

    根据数据库sql生成java代码代码生成器

    1、本地执行代码生成工具,可生成controller、service、...3、可按照资源中提供的建表sql导入到数据库,然后双加start.bat,即可在上方配置的outdir目录中找到生成的代码 4、复制代码到项目目录修修改改即可使用

    SQL Server代码格式化插件

    好用的SQL Server代码格式化插件,有代码提示等功能

    Sqlserver代码辅助工具

    标题中的“Sqlserver代码辅助工具”指的是用于提升SQL Server数据库管理与开发效率的软件工具,这类工具通常包含自动完成、语法高亮、错误检查和智能提示等功能,旨在帮助程序员更快速、准确地编写和调试SQL代码。...

    SQL进阶教程 随书sql代码

    SQL进阶教程(MICK (作者) 吴炎昌 (译者)) ,随书sql代码.本书是《SQL基础教程》作者MICK为志在向中级进阶的数据库工程师编写的一本SQL技能提升指南。全书可分为两部分,第一部分介绍了SQL语言不同寻常的使用技巧,...

    SQLSERVER 2016 代码自动补全功能格式化工具 ApexSQL

    1. **ApexSQL Complete**:这是个强大的SQL代码补全工具,为SQL Server 2016开发人员提供实时的智能提示功能。它不仅支持关键词和对象名的自动完成,还能够识别并提示函数、存储过程、视图等数据库元素。此外,它还...

    SQL防注入代码SQL防注入代码

    SQL防注入代码SQL防注入代码SQL防注入代码SQL防注入代码SQL防注入代码SQL防注入代码

    SQL Server 错误代码大全

    "SQL Server 错误代码大全" SQL Server 错误代码大全是指SQL Server数据库管理系统中出现的各种错误代码及其对应的错误信息。这些错误代码涵盖了SQL Server的各个方面,包括系统错误、存储错误、网络错误、打印机...

    SQL代码提示插件(SQL Assistant)

    SQL代码提示插件,如"SQL Assistant",是数据库开发者和管理员的重要工具,尤其是在处理Microsoft SQL Server (MSSQL)时。这款插件为用户提供了一种高效的方式来进行SQL查询编写,通过提供类似PL/SQL Developer中的...

    sql代码生成器

    SQL代码生成器是一种工具,它能够自动生成SQL(Structured Query Language)代码,帮助开发者节省时间,提高工作效率。这种工具尤其适用于处理复杂的数据库操作,如创建表、插入数据、更新记录或者执行复杂的查询。...

    《Microsoft SQL Server 2005技术内幕:T-SQL查询》示例代码

    通过《Microsoft SQL Server 2005技术内幕:T-SQL查询》中的示例代码,读者可以深入理解T-SQL的各个层面,从而更好地在实际项目中应用这些技术,解决复杂的数据问题。同时,书中还可能包含一些高级主题,如XML处理、...

    SQL美化工具原代码

    2. **Format**:指的是代码格式化,这里特指SQL代码的美化和标准化。 3. **c#**:这是一种面向对象的编程语言,广泛应用于Windows桌面应用、Web应用以及游戏开发,由微软公司开发。 在压缩包内的“SQLFormat”可能...

    AI自动生成SQL语句的开源代码 sqlcoder-main.zip

    开源的AI自动生成SQL语句源代码,这款SQLCoder-70B-Alpha在文本到SQL的转换能力上超越了包括GPT-4在内的所有通用模型,它能更准确地理解你的需求,并生成相应的SQL查询。SQLCoder2和SQLCoder-7B模型已经向公众开放,...

    Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

    6. **存储过程**:预编译的T-SQL代码块,可以封装复杂的业务逻辑并重复使用,提高性能和代码的可维护性。 7. **触发器**:在特定的DML(数据修改语言)操作(如INSERT、UPDATE或DELETE)发生时自动执行的代码段,...

Global site tag (gtag.js) - Google Analytics