sql: Compare Tables
---使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式
select * from BookInfoList
--存在不同的
select BookInfoID,BookInfoBarCode from BookInfoList where BookInfoStatus=1 except select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where BookInventoryPlanId=1 --存在相同的
select BookInfoID,BookInfoBarCode from BookInfoList where exists (select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where InventoryBookList.BookInventoryInfoID=BookInfoList.BookInfoID and BookInventoryPlanId=1) ---存在不同的
select BookInfoID,BookInfoBarCode from BookInfoList where not exists (select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where InventoryBookList.BookInventoryInfoID=BookInfoList.BookInfoID and BookInventoryPlanId=1) select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where exists (select BookInfoID,BookInfoBarCode from BookInfoList where InventoryBookList.BookInventoryInfoID=BookInfoList.BookInfoID) --書盤點到的書藉
select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where BookInventoryPlanId=1 --查找没盘点没有盘点到的书藉,还要考虑在借的书藉
select * from View_BookInfoList where BookInfoID not in (select BookInventoryInfoID from InventoryBookList where BookInventoryPlanId=1)
select * from View_BookInfoList where BookInfoID not in (select BookInventoryInfoID from InventoryBookList where BookInventoryPlanId=2) -- TEMPLATE - SQL Server T-SQL compare two tables
SELECT Label='Found IN BookInfoList, NOT IN InventoryBookList',* FROM
(SELECT BookInfoID,BookInfoBarCode FROM BookInfoList
EXCEPT
SELECT BookInventoryInfoID,BookInventoryBarCode FROM InventoryBookList where BookInventoryPlanId=1) x
UNION ALL
SELECT Label='Found IN InventoryBookList, NOT IN BookInfoList',* FROM
(SELECT BookInventoryInfoID,BookInventoryBarCode FROM InventoryBookList where BookInventoryPlanId=1
EXCEPT
SELECT BookInfoID,BookInfoBarCode FROM BookInfoList) y
GO -- SQL Server T-SQL compare tables for 2005 & 2008
SELECT Label='Found IN BookInfoList, NOT IN InventoryBookList',* FROM
(SELECT BookInfoID,BookInfoBarCode FROM BookInfoList
EXCEPT
SELECT BookInventoryInfoID,BookInventoryBarCode FROM InventoryBookList where BookInventoryPlanId=2) x
UNION ALL
SELECT Label='Found IN InventoryBookList, NOT IN BookInfoList',* FROM
(SELECT BookInventoryInfoID,BookInventoryBarCode FROM InventoryBookList where BookInventoryPlanId=2
EXCEPT
SELECT BookInfoID,BookInfoBarCode FROM BookInfoList) y
GO --
-- SQL find rows present in both tables
SELECT BookInfoID,BookInfoBarCode FROM BookInfoList
INTERSECT
SELECT BookInventoryInfoID,BookInventoryBarCode FROM InventoryBookList where BookInventoryPlanId=1 ---
SELECT BookInfoID,BookInfoBarCode FROM BookInfoList
WHERE NOT EXISTS (SELECT BookInventoryInfoID,BookInventoryBarCode FROM InventoryBookList
WHERE InventoryBookList.BookInventoryInfoID=BookInfoList.BookInfoID and InventoryBookList.BookInventoryPlanId=1) --
-- Alternate query - same results
SELECT BookInfoID,BookInfoBarCode FROM BookInfoList
LEFT OUTER JOIN InventoryBookList
ON InventoryBookList.BookInventoryInfoID=BookInfoList.BookInfoID
WHERE InventoryBookList.BookInventoryPlanId=1
GO select * FROM InventoryBookList WHERE InventoryBookList.BookInventoryPlanId=1 --
select * FROM BookInfoList
left join InventoryBookList on InventoryBookList.BookInventoryInfoID=BookInfoList.BookInfoID
WHERE InventoryBookList.BookInventoryPlanId=1 --存在相同的
select * FROM InventoryBookList
left join BookInfoList on InventoryBookList.BookInventoryInfoID=BookInfoList.BookInfoID
WHERE InventoryBookList.BookInventoryPlanId=1 ---圖書註銷,報廢
IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Select_BookCancellationSearch')
DROP PROCEDURE proc_Select_BookCancellationSearch
GO
CREATE PROCEDURE proc_Select_BookCancellationSearch
(
@BookInfoCancellStar Datetime,
@BookInfoCancellEnd Datetime,
@search nvarchar(100)
)
as
declare @sql nvarchar(4000),@where nvarchar(4000)
set @sql='select * from View_BookCancellationList where BookCancelInfoDate>='''+ cast(@BookInfoCancellStar as varchar)+''' and BookCancelInfoDate<='''+cast(@BookInfoCancellEnd as varchar)+''''
set @where=''
if @Search<>''
begin
set @where=@where+' and (BookInfoISBN like ''%'+@search +'%'' or BookInfoBarCode like ''%'+@search +'%'' or BookCancelInfoDescription like ''%'+@search +'%'' or BookInfoName like ''%'+@search +'%'' or BookInfoRemarks like ''%'+@search +'%'' or BookKindName like ''%'+@search +'%'' or AuthorName like ''%'+@search +'%'')'
end
set @sql=@sql+@where+' order by BookCancelInfoDate desc'
print @sql
exec(@sql)
GO
---在借和注销的书籍
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME = 'View_BookLendingCancellation')
DROP VIEW View_BookLendingCancellation
GO
CREATE VIEW View_BookLendingCancellation
AS
select BookLendingInfoID,BookLendingInfoBarCode from BookLendingList where BookLendingReturn is null --在借的書
union
select BookCancelInfoID,BookCancelBarCode from BookCancellationList --註銷的書
GO select * from View_BookLendingCancellation --计算在馆的书
select * from View_BookInfoList where not exists (select BookLendingInfoID,BookLendingInfoBarCode from View_BookLendingCancellation where View_BookLendingCancellation.BookLendingInfoID=View_BookInfoList.BookInfoID) ---在借和注销,盘点的书籍
select BookLendingInfoID,BookLendingInfoBarCode from BookLendingList where BookLendingReturn is null --在借的書
union
select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where BookInventoryPlanId=1 --盤點的書
union
select BookCancelInfoID,BookCancelBarCode from BookCancellationList --註銷的書
GO --计算盘点问题
declare @BookInventoryPlanId int
set @BookInventoryPlanId=1
drop table #a
select BookLendingInfoID,BookLendingInfoBarCode into #a from BookLendingList where BookLendingReturn is null
insert into #a(BookLendingInfoID,BookLendingInfoBarCode) select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where BookInventoryPlanId=@BookInventoryPlanId
insert into #a(BookLendingInfoID,BookLendingInfoBarCode) select BookCancelInfoID,BookCancelBarCode from BookCancellationList
--select * from #a
select * from View_BookInfoList where not exists (select * from #a where #a.BookLendingInfoID=View_BookInfoList.BookInfoID) select BookLendingInfoID,BookLendingInfoBarCode from BookLendingList where BookLendingReturn is null union select BookInventoryInfoID,BookInventoryBarCode from InventoryBookList where BookInventoryPlanId=@BookInventoryPlanId union select BookCancelInfoID,BookCancelBarCode from BookCancellationList
sql: Compare Tables的更多相关文章
- 使用Red Gate Sql Compare 数据库同步工具进行SQL Server的两个数据库的结构比较、同步
将测试版的项目同步(部署)到正式版的时候,两个数据库的结构比较与同步时,如果修改数据库的时候没有记录好修改了那些表,很难将两个数据库进行同步 RedGate Sql Compare使用简介说明: 1. ...
- 巧用Red Gate SQL Compare破解加密了的存储过程和函数
最近项目中遇到了一个遗留系统的存储过程和函数被加密了,网上找了半天,解决办法倒是有,但需要写一大堆脚本, 怕影响原系统的运行,就说先同步到其他服务器上去破解.没想到,打开Sql Compare一比 ...
- Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程
原文:Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之一 SQL Compare 10.4.8.87 E ...
- SQL Compare数据库比较工具 完全破解+使用教程
来源http://www.cnblogs.com/duci/articles/4482665.html 一.使用教程 SQL Compare是编程人员常用的比较两个数据库之间差异的工具.可以用来比较数 ...
- SQL Compare数据库版本比较工具
Red Gate系列文章: Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source C ...
- SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程
一.使用教程 SQL Compare是编程人员常用的比较两个数据库之间差异的工具.可以用来比较数据库里面的对象.比如存储过程,数据库中的数据,表的结构. 下面我就简单介绍一下如何使用 1.选择要比较的 ...
- SQL Compare
http://pan.baidu.com/s/1jGIEEm6 来源:数据库同步工具: Red Gate Sql Compare
- 使用sql compare生成的sql语句
创建表以及主键 判断表是否存在 OBJECT_ID 判断主键是否存在 SELECT 1 FROM sys.indexes WHERE name = N'PK_LISA_NoUseWebpartRepl ...
- sql compare options
sql compare project's options Add object existence checks Use DROP and CREATE instead of ALTER Ignor ...
随机推荐
- nginx高性能WEB服务器系列之二命令管理
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- 7.pytest中的 plugin
一直想弄弄清这里的东西,一直各种因素delay,今天务必要搞搞清 一.先从官方文档上尝试去解读下什么是plugin和hook 网上有现成的对你适用的插件时候,我们可以直接pip安装,拿来使用即可:但是 ...
- mysql5.1解压版安装
1.如果已经安装别的版本先卸载干净,cmd管理员权限登录,mysql\bin目录:mysqld -remove 2.环境变量 MYSQL:path 3.my.ini [mysqld]port=3306 ...
- 【医学影像】《Dermatologist-level classification of skin cancer with deep neural networks》论文笔记
这是一篇关于皮肤癌分类的文章,核心就是分类器,由斯坦福大学团队发表,居然发到了nature上,让我惊讶又佩服,虽然在方法上没什么大的创新,但是论文本身的工作却意义重大,并且这篇17年见刊的文章,引用量 ...
- vue-cli 3.5 解决 typescript cannot find file 问题。
版本: "ts-loader": "^3.5.0","typescript": "^3.3.4000", "v ...
- BZOJ - 3166 可持久化Trie 维护次大区间
题意:给出\(a[1...n]\),找出一个连续区间\(a[l...r],r>l\),令该区间的次大值为\(a_k\),使得\(a_k⊕a_i,l≤i≤r\)最大,输出全局最优解 (这题意有点别 ...
- Rsa2验签报错【java.security.SignatureException: Signature length not correct】的解决办法
在进行RSA2进行验签的时候,报了以下错误: java.security.SignatureException: Signature length not correct: got 344 but w ...
- (转)搭建企业内部yum仓库(centos6+centos7+epel源)
搭建企业内部yum仓库(centos6+centos7+epel源) 原文:https://www.cnblogs.com/nulige/p/6081192.html https://www.linu ...
- oracle timestamp转换date及date类型相减
--timestamp转换为date(ts字段为timestamp类型) ; --timestamp转换为date(ts字段为timestamp类型) ; --date相减 )) FROM dual; ...
- r.js 配置文件 example.build.js 不完整注释
/* * This is an example build file that demonstrates how to use the build system for * require.js. * ...