合并SQL表数据

时间:2015-05-05 11:55:38

标签: sql sql-server sql-server-2008

我有一个名为tblCustomerproductsstatus的表,它通过自动数据处理引擎提供。 它包含诸如 - TradeID,CustomerInfoNo,product,Status,ProductQuantity,BoughtDate ...... 之类的列,如下所示。

TradeID  CustomerNo Product Name    Status   ProductQuantity     BoughtDate
---------------------------------------------------------------------------------------------------------------
320046  A157BV17034 Martin Mazorra Bonds    Done    125 4/16/2015
324825  A157BV17034 Martin Mazorra Bonds    Done    125 4/17/2015
326673  A157BV17034 Martin Mazorra Bonds    Done    125 4/18/2015
337943  A157BV17034 Martin Mazorra Bonds    Done    125 4/19/2015
337944  A157BV17034 Martin Mazorra Bonds    Done    180 4/20/2015
344243  A157BV17034 Martin Mazorra Bonds    Done    180 4/21/2015
350815  A157BV17034 Martin Mazorra Bonds    Done    180 4/22/2015
360105  A157BV17034 Martin Mazorra Bonds    Done    180 4/23/2015
362186  A157BV17034 Martin Mazorra Bonds    Done    170 4/24/2015
368117  A157BV17034 Martin Mazorra Bonds    Done    170 4/25/2015
376820  A157BV17034 Martin Mazorra Bonds    Done    170 4/26/2015
380321  A157BV17034 Martin Mazorra Bonds    Done    170 4/27/2015
385615  A157BV17034 Martin Mazorra Bonds    Done    255 4/28/2015
386136  A157BV17034 Martin Mazorra Bonds    Done    377 4/29/2015
398302  A157BV17034 Martin Mazorra Bonds    Done    377 4/30/2015
387825  A157BV17034 Martin Mazorra Bonds    Done    125 5/1/2015
388088  A157BV17034 Martin Mazorra Bonds    Done    125 5/2/2015
389001  A157BV17034 Martin Mazorra Bonds    Done    170 5/3/2015
391003  A157BV17034 Martin Mazorra Bonds    Done    170 5/4/2015
----
----
----**

我应该以这种方式获得结果,如下所示。

TradeID  CustomerNo Product Name    Status   ProductQuantity     BoughtDate
--------------------------------------------------------------------------------------------------------------
320046  A157BV17034 Martin Mazorra Bonds    Done    125 4/16/2015
337944  A157BV17034 Martin Mazorra Bonds    Done    180 4/20/2015
362186  A157BV17034 Martin Mazorra Bonds    Done    170 4/24/2015
385615  A157BV17034 Martin Mazorra Bonds    Done    255 4/28/2015
386136  A157BV17034 Martin Mazorra Bonds    Done    377 4/29/2015
387825  A157BV17034 Martin Mazorra Bonds    Done    125 5/1/2015
389001  A157BV17034 Martin Mazorra Bonds    Done    170 5/3/2015
----
----
----

如果客户在2015年4月16日购买产品'并一直持续到2015年4月19日'那么我们只用他的初始TradeID显示一条初始记录,这继续...... 我希望我已经明确表达了这一点。

我一直在考虑使用外部应用/内连接,但不确定该怎么做。

我可能需要通过 OPENROWSET 为远程服务器运行此查询,所以请任何人都有任何建议。

谢谢,

1 个答案:

答案 0 :(得分:1)

对于这种情况,我会使用存储过程。我已经编写了一个存储过程,可以生成您正在寻找的结果。

出于某种原因,我无法将存储过程放在我的答案中,因此您需要查看SQL Fiddle。

SQL小提琴:http://sqlfiddle.com/#!6/c977e/14