`
sogotobj
  • 浏览: 618542 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

两则实现相同功能的代码比较(使用临时表与不用临时表比较)

阅读更多

if (not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[old_outid]') and OBJECTPROPERTY(id, N'IsUserTable') = 1))
begin
select customerid,outid into old_outid from t_customers
--update t_customers set outid='请输入新的学工号'
/* --把新工号恢复成老工号值
UPDATE T_Customers
SET T_Customers.outid = old_outid.outid
FROM old_outid
WHERE old_outid.customerid = T_Customers.CustomerID
*/
end


select * into #dpt from (SELECT dpcode1+dpcode2+dpcode3 as 部门代码,dpname1+'/'+dpname2+'/'+dpname3 as 部门名称 FROM T_Department where dpname1 is not null and dpname2 is not null and dpname3 is not null union all SELECT dpcode1+dpcode2+dpcode3 as 部门代码,dpname1+'/'+dpname2 as 部门名称 FROM T_Department where dpname1 is not null and dpname2 is not null and dpname3 is null UNION ALL SELECT dpcode1+dpcode2+dpcode3 as 部门代码,dpname1 as 部门名称 FROM T_Department where dpname1 is not null and dpname2 is null and dpname3 is null) l


SELECT CustomerID, MAX(OpDt) AS 最近一次补卡时间 into #ReNewCard_MaxDt
FROM T_ReNewCard
GROUP BY CustomerID


SELECT 部门名称,Name AS 姓名, Alias AS 别名, CardType AS 卡类, c.outid AS 新工号,o.outid as 旧工号,最近一次补卡时间
FROM T_Customers c inner join #dpt d on d.部门代码=c.account inner join #ReNewCard_MaxDt r on
r.customerid=c.customerid inner join old_outid o on c.customerid=o.customerid
WHERE (c.CardType IN (1, 2))

drop table #dpt
drop table #ReNewCard_MaxDt


/* --作视图代码,功能同上,不便阅读理解与修改更新,但适用广。
SELECT d.部门名称, c.Name AS 姓名, c.Alias AS 别名, c.CardType AS 卡类,
c.outid AS 新工号, o.outid AS 旧工号, r.最近一次补卡时间
FROM T_Customers c INNER JOIN
(SELECT dpcode1 + dpcode2 + dpcode3 AS 部门代码,
dpname1 + '/' + dpname2 + '/' + dpname3 AS 部门名称
FROM T_Department
WHERE dpname1 IS NOT NULL AND dpname2 IS NOT NULL AND
dpname3 IS NOT NULL
UNION ALL
SELECT dpcode1 + dpcode2 + dpcode3 AS 部门代码,
dpname1 + '/' + dpname2 AS 部门名称
FROM T_Department
WHERE dpname1 IS NOT NULL AND dpname2 IS NOT NULL AND
dpname3 IS NULL
UNION ALL
SELECT dpcode1 + dpcode2 + dpcode3 AS 部门代码, dpname1 AS 部门名称
FROM T_Department
WHERE dpname1 IS NOT NULL AND dpname2 IS NULL AND dpname3 IS NULL)
d ON d.部门代码 = c.Account INNER JOIN
(SELECT CustomerID, MAX(OpDt) AS 最近一次补卡时间
FROM T_ReNewCard
GROUP BY CustomerID) r ON r.CustomerID = c.CustomerID INNER JOIN
old_outid o ON c.CustomerID = o.customerid
WHERE (c.CardType IN (1, 2))
*/

分享到:
评论

相关推荐

    MySQL中关于临时表的一些基本使用方法

    临时表可能是非常有用的,在某些情况下,保持临时数据。最重要的是应该知道的临时表是,他们将当前的客户端会话...下面是一个例子,使用临时表在PHP脚本中,使用mysql_query()函数,可以使用相同的代码。 mysql> CREAT

    Mysql临时表原理及创建方法解析

    这篇文章主要介绍了Mysql临时表原理及创建方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql 利用 temporary 关键字就可以创建出一个临时表。创建...

    mysql 临时表 cann’t reopen解决方案

    当你创建临时表的时候,你可以使用temporary关键字。如: 代码如下: create temporary table tmp_table(name varchar(10) not null,passwd char(6) not null); 或 代码如下: create temporary table if not exists ...

    国家统计局 - 2018年统计用区划代码和城乡划分代码(地址编码)

    (二)关于河北省沧州市任丘市的苟各庄镇、鄚州镇、七间房乡、保定市高阳县的龙化乡统计用区划代码临时调整情况的说明。按照河北省委、省政府关于对雄安新区周边部分区域实施托管的通知要求,沧州市任丘市的苟各庄镇...

    sqlserver通用的删除服务器上的所有相同后缀的临时表

    代码如下: use tempdb if object_id(‘tempdb..#table’) is not null drop table tempdb..#table select name into tempdb..#table from (select * from sysobjects where xtype=’U’) a where a.name like ‘%...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

    c# 加密和解密相关代码

    添加两个Button 控件,分别用来实现利用ROT13算法加密和解密数据的功能。 (3)程序主要代码如下: public string ROT13Encode(string InputText) { char tem_Character; //存储临时字符 int UnicodeChar; //存储...

    Sql Server里删除数据表中重复记录的例子

    1、生成一张临时表new_users,表结构与users表一样; 2、对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表;如果已经有了相同的项,则忽略...

    基于深度学习的热轧带钢表面缺陷自动检测设计与实现python源码+答辩PPT+模型(毕设项目).zip

    该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白...

    vc++ 应用源码包_6

    详细演示了HtmlView的使用与HtmlView事件站点拦截的实现、js调用。 CIVStringSet_Demo 自定义了一个类似STL容器的类,并进行了测试。 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史...

    vc++ 应用源码包_5

    详细演示了HtmlView的使用与HtmlView事件站点拦截的实现、js调用。 CIVStringSet_Demo 自定义了一个类似STL容器的类,并进行了测试。 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史...

    vc++ 开发实例源码包

    详细演示了HtmlView的使用与HtmlView事件站点拦截的实现、js调用。 CIVStringSet_Demo 自定义了一个类似STL容器的类,并进行了测试。 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史...

    数据库设计的黄金经验.txt

    若三层视图仍不够用, 则应在视图上定义临时表, 在临时表上再定义视图。这样反复交迭定义, 视图的深度就不受限制了。 对于某些与国家政治、经济、技术、军事和安全利益有关的信息系统,视图的作用更加重要。这些系统...

    Access+2000中文版高级编程

    8.2.2 同一个表使用两次(自联接) 189 8.2.3 使用Access的自动查阅功能 191 8.3 运用操作查询:力量的源泉 193 8.3.1 生成表查询(SELECT INTO) 193 8.3.2 追加查询 194 8.3.3 更新查询(UPDATE..SET) ...

    Access 2000中文版高级编程(part1)

    8.2.2 同一个表使用两次(自联接) 189 8.2.3 使用Access的自动查阅功能 191 8.3 运用操作查询:力量的源泉 193 8.3.1 生成表查询(SELECT INTO) 193 8.3.2 追加查询 194 8.3.3 更新查询(UPDATE..SET) 195 ...

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_2

    详细演示了HtmlView的使用与HtmlView事件站点拦截的实现、js调用。 CIVStringSet_Demo 自定义了一个类似STL容器的类,并进行了测试。 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史...

    基于Pytorch+pyqt5实现热轧带钢表面缺陷自动检测源码+GUI界面+模型+PPT报告(毕业设计).zip

    基于Pytorch+pyqt5实现热轧带钢表面缺陷自动检测源码+GUI界面+模型+PPT报告(毕业设计).zip 【资源介绍】 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白...

    vc++ 应用源码包_3

    详细演示了HtmlView的使用与HtmlView事件站点拦截的实现、js调用。 CIVStringSet_Demo 自定义了一个类似STL容器的类,并进行了测试。 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史...

    API之网络函数---整理网络函数及功能

    GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 GetTempPath 获取为临时文件指定的路径 GetVolumeInformation 获取与一个磁盘卷有关的信息 GetWindowsDirectory 获取Windows目录的完整...

Global site tag (gtag.js) - Google Analytics