首页 > 代码库 > sql: Compare Tables
sql: Compare Tables
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | ---使用 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 |
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | ---在借和注销的书籍 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 |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。