在SQLServer2008输出功能合并报表
这里有2008个新的T-SQL语句输出相结合的方式,合并:构建下表:
复制代码代码如下所示:
创建表格书(
ISBN varchar(20)主键,
价格小数,
货架int)
创建表weeklychange(
ISBN varchar(20)主键,
价格小数,
货架int)
BookHistory(创建表
行动nvarchar(10),
NewISBN varchar(20),
新价格小数,
newshelf int,
OldISBN varchar(20),
oldprice小数,
oldshelf int,
archivedat datetime2)
SQL语句是
复制代码代码如下所示:
合并为B的书
使用weeklychange WC
在b.isbn = wc.isbn
当匹配(船上的交货价WC。价格B.架WC。架<> <>然后)
更新设置B价格=价格。
当不匹配时
插入值(wc.isbn,WC。价格、WC。架)
输出为行动,插入,删除,sysdatetime()。
BookHistory;
结果集如下:
SELECT * FROM bookhistory
去
行动newisbn价格新newshelf oldisbn oldprice oldshelf archivedat
-------------------------------------------------------------------------------
更新1011 1001 2007-11-25 14:47: 23.9907552
插入C 3003空零2007-11-25 14:47: 23.9907552
这里有两个插入和更新的输出案例,如果只需要其中一个,可以通过以下方法进行过滤:
复制代码代码如下所示:
插入书(书号、价格、货架、ArchivedAt)
选择书号、价格、货架、getDate()从
(合并图书B)
使用weeklychange WC
在b.isbn = wc.isbn和b.archivedat是空的
当匹配(船上的交货价WC。价格B.架WC。架<> <>然后)
更新设置价格=价格,货架=货架
当不匹配时
插入值(wc.isbn,WC。价格、WC。架空)
输出美元的行动,WC.ISBN,删除。价格、删除。架
)的变化(动作,书号、价格、Shelf)
在行动=更新;