sql: Compare Tables

2023-11-20

---使用 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

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql: Compare Tables 的相关文章

随机推荐

  • 用微信开发者工具--打开小程序组件vant Weapp示例

    浏览器搜索 https github com youzan vant weapp 1 下载Vant Weapp组件 2 打开微信开发者工具 把vant weapp example目录添加进去 3 把dist目录复制到example目录下 在
  • ag-gride-vue 数据的多选

    1 data checkAll false selectedRowIds isIndeterminate false 2 methods changeSelectedRow flag id flag this selectedRowIds
  • 小程序开发——微信外环境静态h5跳转小程序

    亲测有效 微信外环境静态h5跳转小程序
  • draw.io---一款免费、开源的流程图绘制工具

    draw io 是一款非常强大实用的免费 开源流程图绘制工具 功能众多 例如通过流程图来可视化您的工作流程 创建组织结构图来来显示人员结构 创建网络图来可视化网络等等 适用于商务 工程 电气 网络设计 软件设计等诸多领域 同时还内置了相当丰
  • ddos攻击怎么防?防御ddos的几种方法

    现在的互联网行业大多数企业基本上都依靠网络来获取流量和订单或者服务 但是却对网络的利弊知之甚少 特别是网站的较大威胁DDOS攻击 很多互联网企业基本都遭遇过DDOS攻击的勒索和恶性竞争 大部分企业网站一旦被DDOS攻击就立马挂了 从而影响了
  • Linux下printk输出

    由于Linux内核的级别控制 导致printk打印的内容不一定都能从控制台正常输出 可以使用dmesg命令来输出所有级别的信息 输入 sudo dmesg n 8 可以把所有日志信息输出来 Linux命令 dmesg 功能说明 显示开机信息
  • Tips系列之飞书日历

    最近收到很多小伙伴的问题 咨询飞书日历如何使用 今天就给大家呈上几个小Tips 让你更全面的了解飞书日历 免费使用 飞书官网 1 订阅日历 你可以订阅同事的日历 查看对方的忙闲状态 省去反复沟通的麻烦 快速找到空闲时间并邀约会议 如何订阅日
  • 卷积神经网络之-VGGNet

    更多内容请关注 机器视觉 CV 公众号 原文地址 VGGNet 是由牛津大学视觉几何小组 Visual Geometry Group VGG 提出的一种深层卷积网络结构 他们以7 32 的错误率赢得了2014年ILSVRC分类任务的亚军 冠
  • Alpha多样性之箱线图绘制

    Alpha多样性 通常用Richness Chao1 Shannon Simpson Dominance和Equitability等指数来评估样本的物种多样性 所以这个节学习主要分两个部分 1 计算 生物多样性指数 软件 R软件中vegan
  • 副业是刚需?分享几个程序员接外包私活的网站

    经常看到某某程序员接了个项目开发 工作之余轻轻松松赚了钱还顺带提升了技术 或者看到某大佬又发表了一篇程序员技术提升稿件 阅读点赞收藏三连发 这个月的零花钱又不愁了 但自己只是一名普普通通的程序员 能找到这样的副业吗 这些项目又在哪里接的呢
  • 网站为什么建议用https协议

    HTTPS 全称 Hyper Text Transfer Protocol over SecureSocket Layer 是以安全为目标的 HTTP 通道 在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 HTTPS 在HT
  • STM32f103增加ESP8266模块,通过Wifi用手机TCP服务端远程与STM32通信

    STM32f103增加ESP8266模块 通过Wifi用手机TCP服务端远程与STM32通信 提示 esp8266开启透传模式 连上路由器Wifi 电脑热点 接入STM32串口引脚 另外手机TCP服务端是手机IP地址 串口号 大于8000滴
  • 仅需三步就可以把代码块完美插入到word中

    还在为在word中呈现代码而烦恼吗 如何在word中插入c 代码 如何在word中插入代码块 如何在word中完美的呈现代码 如何在word中对代码进行排版 来开始表演了 1 打开网站 http word wd1x com 支持c c ja
  • keil提示找不到芯片库

    keil提示找不到芯片库 有几种可能 一种是没安装芯片软件包 下载相应芯片包即可 还有一种可能是工程本身是用keil4创建的 而你用的是keil5打开的 此种情况将后缀名uvproj改成uvprojx即可 图1
  • java获取method_从Method中获取完整类名和方法名

    需求假设 假设在包com zhoutao controller下有方法getKey 方法 在JavaEE中 通过AOP获得该方法的的对象method 现在通过该对象的getName方法 仅仅只能获得getKey的结果 现在我需要的是com
  • 性别年龄识别器

    心情 最近比较郁闷 自己的小论文已经投了快8个月了 从去年的AAAI CVPR 到现在在审的TCSVT AAAI由于页数超限被拒 CVPR因为一个正面和2个负面评价被拒 TCSVT还前途未卜 真的很郁闷 心情不好 论文也不太想看 撸撸代码放
  • Idea快速开发SpringBoot项目的方法

    一 常用插件 1 Free Mybatis plugins 针对Mybatis框架提供的插件 自动完成Mapper接口和Mapper xml之间的跳转 2 RestfulTool 自动显示工程中的所有URL接口 进行测试 并且提供检索功能
  • Elasticsearch(十三) ElasticSearch搜索附近的人

    需求 通过指定点搜索附近的人 要求可以过滤年龄 结果按照距离进行排序 并且展示她 他距离你多远 本文参考 es官网文档 https www elastic co guide cn elasticsearch guide current so
  • 面试题:StringBuilder 和 StringBuffer 区别(通俗易懂易背)

    StringBuffer是同步的 线程安全 StringBuilder不是 什么时候用哪一个 StringBuilder 当您需要一个可以修改的字符串 并且只有一个线程正在访问和修改它时 StringBuffer 当你需要一个可以修改的字符
  • sql: Compare Tables

    使用 UNION INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式 select from BookInfoList 存在不同的 select BookInfoID BookInfoBarCod