表A的数据减去表B ,最终得到表C

==========
表A数据如下:                
表B数据如下:
cr     zc    
lx                    
cr    zc    lx
100   100  
1                    
50    50   1
90    
80   
2                    
10    20   3
70     
80   3
我想要以下的结果:
表C:
cr    
zc      lx
50   
50      1
90    
80     2
60    
60     3
即根据lx字段让表A的数据减去表B ,最终得到表C

SELECT
  ISNULL(a.cr, 0) - ISNULL(b.cr, 0) AS cr,
  ISNULL(a.zc, 0) - ISNULL(b.zc, 0) AS zc,
  ISNULL(a.lx, b.lx)  AS lx
FROM
  #A a FULL JOIN #B b ON (a.lx = b.lx)
go

数据类型 varchar 对于 subtract 运算符无效。
这里的subtract是减号的意思,即数数据类型 varchar
对于减号(“-”)运算符无效。
可用于int,double,float,char类型的运算,比如5-3,a-b。varchar类型的是不能进行减法运算的。

时间: 2024-10-10 17:45:59

表A的数据减去表B ,最终得到表C的相关文章

sql 将一张表中的数据插入到另一张表

将表T_wz_wz中的部分数据插入到表t_wz_kc: insert into t_wz_kc(wzid,jldwid,kcsl,yfpkcsl,cshwcbz) select wzid,jldwid,0,0,'Y' from t_wz_wz where yxbz='Y' --去重复-- and wzid not in (select wzid from t_wz_kc)

sql根据一个表查询的数据作为条件查询另一个表

代码格式如下: select * from BillConsume where obId in (select obId from OpenBills where clearTheMarket is null or clearTheMarket=0) 要注意的是:in后面的查询语句必须是查询一个字段跟前面的表相对应的.比如要根据订单号orderID,OpenBills 这个表就需要查询到orderID这个字段,BillConsume这个表的条件就要判断orderID

【Paddy】如何将物理表分割成动态数据表与静态数据表

前言 一般来说,物理表的增.删.改.查都受到数据量的制约,进而影响了性能. 很多情况下,你所负责的业务关键表中,每日变动的数据库与不变动的数据量比较,相差非常大. 这里我们将变动的数据称为动态数据,不变动的数据称为静态数据. 举个例子,1张1000W的表,每日动态数据只有1W条,999W条的数据都为静态.往往select或者重复改变的数据都在动态数据中.比如订单表. 所以,如果将动态数据库从表中剥离出来,分割两张表,一张动态数据表,一张静态数据表,从数据量的角度来看,性能是不是就会自然提高了?

把一个表中的数据导入到另一个表中

最近,需要对表中的数据进行操作.或者将表中的数据导入到另一张表中,或者将表中的数据生成insert脚本. 假如目标表存在 INSERT INTO 目标表名称 SELECT * FROM 来源表 假如目标表不存在 select * into 目标表名称 from 来源表 直接生成insert语句 select 'insert into 目标表 (字段1,字段2) values ('''+字段1+''','''+字段2+''');' sql_str from 目标表;

MySql存储过程动态创建表并插入数据

最近做的一个项目,数据库用的是MySql,对于MySql不是很熟练,只是会简单的应用,毕竟简单的sql语句还是相通的,但是随着项目的深入复杂的sql语句开始慢慢多起来,其中一个小难点就是要根据当天的日期动态创建表,并且向其中插入数据. 具体逻辑可以理解为,先去数据库查询有没有当天的记录表,如果没有则创建表,然后执行当天的日志写入. Mysql的可视化工具我们用的是navicat,相对来说还是比较好用,当然没有sqlserver 那么人性化(很多快捷键不支持,操作累赘).下面我就来说一说用navi

sqlserver删除所有表(表结构和数据)

要删除某个数据库,或者删除数据库中的所有表(删除表结构和数据),需要先删除表间的外键约束,才能删除表.如删除数据库db_wy中的所有表: --/第1步**********删除所有表的外键约束*************************/ DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; ' from sysobjects where x

SQL_如何实现用户A的表A数据插入到用户B的表B中?

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39901995 *******

MySQL 如何只导出 指定的表 的表结构和数据 ( 转 )

MySQL 如何只导出 指定的表 的表结构和数据 ( 转 ) 2011-01-04 15:03:33 分类: MySQL MySQL 如何只导出 指定的表 的表结构和数据 导出更个库的表结构如下:mysqldump -uroot -p -d databasename > createtab.sql, 如果只想导出 表 test1,test2,test3 的 表结构 和 数据呢?该如何导出? mysqldump -uroot -p -d databasename test1 test2 test3

[转]Oracle DB 使用连接显示多个表中的数据

? 编写SELECT语句,以使用等值联接和非等值联接访问多个表中的数据 ? 使用自联接将表联接到自身 ? 使用OUTER联接查看通常不满足联接条件的数据 ? 生成两个或多个表中所有行的笛卡尔积 ? JOIN的类型及其语法 ? 自然联接: – USING子句 – ON子句 ? 自联接 ? 非等值联接 ? OUTER联接: – LEFT OUTER联接 – RIGHT OUTER联接 – FULL OUTER联接 ? 笛卡尔积 – 交叉联接 获取多个表中的数据 有时需要使用多个表中的数据.如两个独立