-- 使用临时表
-- 创建临时表
--ALTER TABLE TS_ExpenseApplication_Reim_Detail ADD BgCode NVARCHAR() NULL, BgItem NVARCHAR() NULL, BgCate NVARCHAR() NULL; IF OBJECT_ID('dbo.tempExpense','U') IS NOT NULL DROP TABLE dbo.tempExpense;
GO SELECT *
INTO dbo.tempExpense
FROM TS_ExpenseApplication_Reim_Detail
where ISNULL(Bgcode,'')=''
ORDER BY TaskID;
--select budgetno,BgCode,* from TS_ExpenseApplication_Reim_Detail
--select * from TS_ExpenseApplication_Reim_Detail1
--SELECT * FROM dbo.tempExpense; -- 声明变量
DECLARE
@task AS INT,
@budgetnum AS NVARCHAR() ,
@budgetcode AS NVARCHAR(),
@Costcenter AS NVARCHAR() ,
@Feecategory AS NVARCHAR(),
@budgetItem AS NVARCHAR(); WHILE EXISTS(SELECT TaskID FROM dbo.tempExpense)
BEGIN
-- 也可以使用top
SET ROWCOUNT
SELECT @task= TaskID, @budgetnum= BudgetNo FROM dbo.tempExpense;
  --抓取费用类别
select @Costcenter=FreeCategory from TS_ExpenseApplication_Reim a inner join Trina_CostCenterFreeCategory b on a.costcentercode=b.CostCenterCode
where TaskID=@task;
print @Costcenter;
--B002 BA05 B003 B004 B003_1 B004_1 B006 B007 B010 B017 B021 B022 B027 B030 B031 B032 B027高管手机
--根据规则匹配对应预算号
begin
if CHARINDEX('B004_1',@budgetnum)>
set @budgetcode='B004_1';
else if CHARINDEX('B003_1',@budgetnum)>
set @budgetcode='B003_1';
else if CHARINDEX('B027高管手机',@budgetnum)>
set @budgetcode='B027高管手机';
else if CHARINDEX('B002',@budgetnum)>
set @budgetcode='B002';
else if CHARINDEX('BA05',@budgetnum)>
set @budgetcode='BA05';
else if CHARINDEX('B003',@budgetnum)>
set @budgetcode='B003';
else if CHARINDEX('B004',@budgetnum)>
set @budgetcode='B004';
else if CHARINDEX('B006',@budgetnum)>
set @budgetcode='B006';
else if CHARINDEX('B007',@budgetnum)>
set @budgetcode='B007';
else if CHARINDEX('B010',@budgetnum)>
set @budgetcode='B010';
else if CHARINDEX('B017',@budgetnum)>
set @budgetcode='B017';
else if CHARINDEX('B021',@budgetnum)>
set @budgetcode='B021';
else if CHARINDEX('B022',@budgetnum)>
set @budgetcode='B022';
else if CHARINDEX('B027',@budgetnum)>
set @budgetcode='B027';
else if CHARINDEX('B030',@budgetnum)>
set @budgetcode='B030';
else if CHARINDEX('B031',@budgetnum)>
set @budgetcode='B031';
else if CHARINDEX('B032',@budgetnum)>
set @budgetcode='B032';
else
set @budgetcode='';
end print @budgetcode;
--抓取关联的维护表中会计号和科目
begin
if @Costcenter='销售费用'
begin
select @budgetItem=SellingCode,@Feecategory=SellingName from MT_BudgetFeeCategory where BudgetCode=@budgetcode;
print @budgetItem;
print @Feecategory;
end
else if @Costcenter='管理费用'
begin
select @budgetItem=GACode,@Feecategory=GAName from MT_BudgetFeeCategory where BudgetCode=@budgetcode;
print @budgetItem;
print @Feecategory;
end
else if @Costcenter='研发费用'
begin
select @budgetItem=RDCode,@Feecategory=RDName from MT_BudgetFeeCategory where BudgetCode=@budgetcode;
print @budgetItem;
print @Feecategory;
end
else if @Costcenter='制造费用'
begin
select @budgetItem=OverheadCode,@Feecategory=OverheadName from MT_BudgetFeeCategory where BudgetCode=@budgetcode;
print @budgetItem;
print @Feecategory;
end
else
begin
select @budgetItem='',@Feecategory='' from MT_BudgetFeeCategory where BudgetCode=@budgetcode;
print @budgetItem;
print @Feecategory;
end
end UPDATE TS_ExpenseApplication_Reim_Detail SET BgCode= @budgetcode,BgItem=@budgetItem,BgCate=@Feecategory WHERE TaskID=@task;
set @budgetcode='';
set @Feecategory='';
set @budgetItem='';
SET ROWCOUNT DELETE FROM dbo.tempExpense WHERE TaskID=@task;
END

SQL 使用临时表和临时变量完成update表字段---实际案例的更多相关文章

  1. SQL Server 临时表和表变量系列之选择篇

    原文地址:https://yq.aliyun.com/articles/69187 摘要: # 摘要 通过前面的三篇系列文章,我们对临时表和表变量的概念.对比和认知误区已经有了非常全面的认识.其实,我 ...

  2. mysql / pgsql 使用sql语句查询数据库所有表注释已经表字段注释

    mysql使用sql语句查询数据库所有表注释已经表字段注释(转载)   场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammo ...

  3. SQL数据库中临时表、临时变量和WITH AS关键词创建“临时表”的区别

    原文链接:https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL数据库中数据处理时,有时候需要建立临时表,将查询后的结果集放到临时表中 ...

  4. 小记sql server临时表与表变量的区别

    临时表与表变量都可以起到“临时”的作用,那么两者主要的区别是什么呢? 这里不讨论创建方式,以及全局临时表.会话临时表这些,主要记录一下个人对两者的主要区别以及适用情况的看法,有什么不对或补充的地方,欢 ...

  5. SQL Server 临时表 Vs 表变量

    开始 说临时表和表变量,这是一个古老的话题,我们在网上也找到很多的资料阐述两者的特征,优点与缺点.这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和 ...

  6. mysql使用sql语句查询数据库所有表注释已经表字段注释

    场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammothcode’ 所有表注释 */ SELECT TABLE_NAME,T ...

  7. coding++ :MySQL 使用 SQL 语句查询数据库所有表注释已经表字段注释

    1.要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammothcode’ 所有表注释 */ SELECT TABLE_NAME,TABLE_ ...

  8. SQL Server 判断表名称、索引、表字段是否存在

    1.判断索引是否存在 ps:@tableName 表名称, @indexName 索引名 IF EXISTS (SELECT 1 FROM sys.indexes WHERE object_id=OB ...

  9. sql 查询所有数据库、表名、表字段总结

    ms sql server 1.查询所有表select [id], [name] from [sysobjects] where [type] = 'u' order by [name]2.查询所有数 ...

随机推荐

  1. Java数据结构和算法 - 什么是2-3-4树

    Q1: 什么是2-3-4树? A1: 在介绍2-3-4树之前,我们先说明二叉树和多叉树的概念. 二叉树:每个节点有一个数据项,最多有两个子节点. 多叉树:(multiway tree)允许每个节点有更 ...

  2. bilibili源码泄漏后,程序员们从代码里扒出来的彩蛋

    昨天bilibili又上热搜了,被某人在github上开了个账号,传了份整个后端代码到github,这是被人扒光了衣服看个精光啊. 这件事情,作为程序员的我们除了调侃和fork的同时,想一想,造成这个 ...

  3. 13.Django1.11.6文档

    第一步 入门 检查版本 python -m django --version 创建第一个项目 django-admin startproject mysite 运行 python manage.py ...

  4. 死磕 java集合之TreeMap源码分析(一)- 内含红黑树分析全过程

    欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. 简介 TreeMap使用红黑树存储元素,可以保证元素按key值的大小进行遍历. 继承体系 Tr ...

  5. metasploit无法连接postgresql

    注:倒数两条可以不做. 问题地址:https://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432 设置好 ...

  6. 漫画:Linux中/etc/resolv.conf文件和puppet工具解析

    今天办公室里来了一个程序员妹子飞鸟,小鱼是给她分配的导师,初次见面~ 午饭时间 Linux目录结构 resolv.conf文件 nameserver 唯一的必选关键字.表明DNS 服务器的IP 地址, ...

  7. C#3.0导航

    C#3.0主要特性 智能的编译器 编译器,背后的默默付出者 Lamdba表达式与表达式树 匿名方法的革命 扩展方法 优雅的对类进扩展 (待完成) LINQ 还有这种操作? (待完成)

  8. 【ASP.NET Core快速入门】(四)在CentOS上安装.NET Core运行时、部署到CentOS

    下载.NET Core SDK 下载地址:https://www.microsoft.com/net/download/windows 第一步:Add the dotnet product feed( ...

  9. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(5)- 语音识别实现(SpeechRecognition, PocketSphinx0.1.15)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之语音识别实现. 语音识别是Jays-PySPEECH的核心功能,Jays-PySPEECH借 ...

  10. Asp.net Core 项目中如何使用 MongoDB 数据库

    内容来源 https://blog.csdn.net/qq_26900081/article/details/83272132 一.添加依赖 1.MongoDB.Driver 2.MongoDB.Bs ...