- 1、本文档共131页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章-高级查询
示例(续) 修改Product表中“4100037”产品的价格为55: UPDATE Product SET Price=55 WHERE ProductID = 4100037 再次同步数据: MERGE ProductNew AS d USING Product AS s ON s.ProductID = d.ProductID WHEN NOT MATCHED THEN INSERT( ProductID,ProductName,Price) VALUES(s.ProductID,s.ProductName,s.Price) WHEN MATCHED THEN UPDATE SET d.ProductName = s.ProductName, d.Price = s.Price; */131 示例(续) 从Product表中删除“410037”号产品: DELETE FROM Product WHERE ProductID = 4100037 再次同步数据: MERGE ProductNew AS d USING Product AS s ON s.ProductID = d.ProductID WHEN NOT MATCHED BY TARGET THEN INSERT( ProductID,ProductName,Price) VALUES(s.ProductID,s.ProductName,s.Price) WHEN NOT MATCHED BY SOURCE THEN DELETE WHEN MATCHED THEN UPDATE SET d.ProductName = s.ProductName, d.Price = s.Price; */131 用MERGE语句实现汇总数据同步 假设为了做月报表的需要,创建了一个月销售汇总表。 希望每日将新的销售记录添加到每月汇总表中。在每个月的第1天晚上,只需将销售记录插入到销售汇总表中即可。 但从第2天晚上开始情况就不一样了,对于之前没有销售记录的数据,只需将该数据插入到销售汇总表中;对于之前有销售记录的数据,则需要更新该商品的汇总数据 */131 示例(续1) 本示例用MySimpleDB数据库中的Sales.SalesOrderHeader和Sales.SalesOrderDetail表中的数据来同步销售汇总数据。在MySimpleDB数据库中创建销售汇总表: CREATE TABLE Sales.MonthlyRollup( Year smallint NOT NULL, Month tinyint NOT NULL, ProductID int NOT NULL REFERENCES Production.Product (ProductID), QtySold int NOT NULL, PRIMARY KEY(Year,Month,ProductID)) */131 示例(续2) 设只对2003年8月的数据进行汇总,从该月的第1天开始。构建MERGE语句,产生2003年8月1日的销售汇总数据。 MERGE Sales.MonthlyRollup AS smr USING( SELECT soh.OrderDate, sod.ProductID, SUM(sod.OrderQty) AS QtySold FROM Sales.SalesOrderHeader soh JOIN Sales.SalesOrderDetail sod ON soh.SalesOrderID = sod.SalesOrderID WHERE soh.OrderDate = 2003-08-01 GROUP BY soh.OrderDate, sod.ProductID ) AS s ON (s.ProductID = smr.ProductID) WHEN MATCHED THEN UPDATE SET smr.QtySold = smr.QtySold + s.QtySold WHEN NOT MATCHED THEN INSERT (Year, Month, ProductID, QtySold) VALUES (DATEPART(yy, s.OrderDate), DATEPART(m, s.OrderDate), s.ProductID, s.QtySold); */131 示例(续3) 继续查看该月第2天的总结果。更新日期,继续运行下述代码(仿
您可能关注的文档
- 礼仪展风采...doc
- 破阵子课件..ppt
- 礼仪教育王静..doc
- 确定起跑线A..ppt
- 祖国你好..doc
- 祖国有多大1..doc
- 祖国有多大2..doc
- 祝福祖国..doc
- 神圣的殿堂..doc
- 祖父的园子4..ppt
- 2023年春季《行政伦理学》作业1-4、终考任务题目和答案.pdf
- 2023年消防设施操作员之消防设备初级技能考前冲刺试卷B卷含答案.pdf
- 2023年银行专业人员《公共科目+风险管理》考试题库(附标准答案).pdf
- 2023年现场管理类隐患排查治理清单作业活动.pdf
- 2023年消防设施操作员之消防设备高级技能通关提分题库(考点梳理).pdf
- 2023年注册城乡规划师之城乡规划原理题库与答案.pdf
- 2023年资产评估学完整考点版.pdf
- 2023上半年教师资格考试真题及答案-302中学《教育知识与能力》.pdf
- 2023新教材高中生物课后分层检测案20光合作用的原理和应用新人教版必修1.pdf
- 2023年香港会计科目大全.pdf
文档评论(0)