我想从不同的表中减去并添加两列。
表格:BookID | BookName | Author | Edition | PublishingYear | copies| Shelf | Row
1 | SQL | Robert | 3 | 2005 | 3 | A |third
table问题:(在此我创建了与tblPerson的连接以显示PersonName而不是PersonID)
BookID | BookName | DateIssue | ReturnDate | PersonName | copies
1 | SQL | 2015-10-12 | 2015-10-12 | john | 1
表返回:
BookID | BookName | DateIssue | ReturnDate | PersonName | copies
1 | SQL | 2015-10-12 | 2015-10-12 | john | 1
Sql Query:
Select (tblBook.copies) - (tblIssue.copies)
FROm tblBook
FULL join tblIssue
ON tblBook.copies = tblIssue.copies
此查询不会减去这两列(副本)。 我想在发行本书时从tblbook列副本(原始值)中减去列(副本)tblIssue。 当我从tbl Return返回本书时,它会在tblBook中的列(副本)中给出原始值。
答案 0 :(得分:1)
当你进行连接时,你需要连接表上的表来连接表格。
在副本上连接两个表没有逻辑意义,所以改为将它加入主键外键引用BookID。
Select (tblBook.copies) - (tblIssue.copies)
FROm tblBook
FULL join tblIssue
ON tblBook.BookId = tblIssue.BookId
如果没有否定,这将产生以下结果。
BookID | BookName | Author | Edition | PublishingYear | copies| Shelf | Row | BookID | BookName | DateIssue | ReturnDate | PersonName | copies
1 | SQL | Robert | 3 | 2005 | 3 | A |third| 1 | SQL | 2015-10-12 | 2015-10-12 | john | 1
从而减去应该等于3-1
的{{1}}。但是,考虑加入结果应该是什么然后计划出你的加入策略总是很重要。
编辑1
在给定时间可以获得多少本书的示例查询
2
这将产生一个给定日期的汇总结果,对于这个案例,2015-10-12,你有多少本书是有用的,它不是最优的,但是你给的,看起来它是最好的溶液