我有一些遗留的产品数据证明难以使用。产品可以1,2或3个零件出售,系统设计的方式,订购产品的第2和第3部分只是该产品的第一排之后的后续行。将分区相关的行分组到
下面是一些样本数据....
----------------------------------------------------------
OrderId Sku Type Row_Id OtherColumns...
----------------------------------------------------------
123 001 Double 0 Other stuff..
123 001 Double 1 Other stuff..
123 001 Double 2 Other stuff..
123 001 Double 3 Other stuff..
123 002 Single 4 Other stuff..
123 003 Triple 5 Other stuff..
123 003 Triple 6 Other stuff..
123 003 Triple 7 Other stuff..
123 001 Double 8 Other stuff..
123 001 Double 9 Other stuff..
123 002 Single 10 Other stuff..
123 002 Single 11 Other stuff..
123 002 Single 12 Other stuff..
123 002 Single 13 Other stuff..
旧的软件(VB)与此交易通过循环行和期待,因为它循环,得到它从行所需要的信息,然后跳过它们。
快进8年......我在我的新工作中继承了这个系统,并从头开始重写系统。我遇到的问题是将旧数据转换为我的新格式。
我正在寻找一种方法来选择相同的数据,并通过适当的段号进行分区。我使用了RANK()OVER(PARTITION BY),但没有成功。我觉得我只是做得不对。
理想情况下,我希望能够产生一个结果集,看起来像这样:(注:段列)
-------------------------------------------------------------------
OrderId Sku Type Row_Id Segment OtherColumns...
-------------------------------------------------------------------
123 001 Double 0 1 Other stuff..
123 001 Double 1 2 Other stuff..
123 001 Double 2 1 Other stuff..
123 001 Double 3 2 Other stuff..
123 002 Single 4 1 Other stuff..
123 003 Triple 5 1 Other stuff..
123 003 Triple 6 2 Other stuff..
123 003 Triple 7 3 Other stuff..
123 001 Double 8 1 Other stuff..
123 001 Double 9 2 Other stuff..
123 002 Single 10 1 Other stuff..
123 002 Single 11 1 Other stuff..
123 002 Single 12 1 Other stuff..
123 002 Single 13 1 Other stuff..
理想情况下,我想,以避免光标或循环。我将使用查询来迁移从多个表派生的数百万条记录。
在此先感谢您的帮助。
编辑 我已经更新了示例数据以显示我确实有背靠背组需要隔离。
标识符为“基团”是仅'Type'柱,其中一个“双重”值意味着分组两行,及“三重”是指3?而且 - 你不应该创建一个在组中不同的标识符,而不是一个似乎根本不分组的行。 – 2012-04-26 04:32:02
第二个示例表格不是我的新格式......它仅仅是一个结果集,可让我轻松识别数据导入过程中的细分受众群。 – ctorx 2012-04-26 04:33:52
好的。我的问题的第一部分? – 2012-04-26 04:35:05