从多行生成单行

时间:2014-01-21 05:51:56

标签: sql-server sql-server-2008 stored-procedures

我正在处理存储过程以返回包含多个表

列的行

第一张表 - Product Variant

Columns are - Sku, Name, Price, MRP, Cost

第二张表 - Sku_Mrp_Mapping

Columns are - Sku, MRP, Cost

第三表 - Sku_Barcode_Mapping

Columns are - Sku, Barcode

我的查询

SELECT     pv.Sku, pv.ProductCost, pv.Price, pv.Mrp,sb.Barcode,
           sm.MRP, sm.Cost
FROM         ProductVariant AS pv INNER JOIN
                      LEFT OUTER JOIN
                      Sku_MRP_Mapping AS sm ON sm.Sku = pv.Sku LEFT OUTER JOIN
                      Sku_Barcode_Mapping AS sb ON sb.SKU = pv.Sku
WHERE     (p.Deleted = 0) AND (pv.Deleted = 0) and pv.Sku='100003'

ORDER BY pv.Sku

这个结果为42行,对于sku 100003,有7个条形码和6个不同的Mrp和成本。 我的行看起来像

对于我在Sku_Mrp_Mapping表中的Sku 100003行是

Id    Sku    MRP     Cost
1   100003  65.00   58.19
2   100003  68.00   60.87
3   100003  72.00   64.45
4   100003  75.00   67.14
5   100003  78.00   69.83
6   100003  80.00   71.63

对于我在Sku_Barcode_Mapping表中的Sku 100003行是

Id      SKU        Barcode
87942   100003  8901314009159
87943   100003  10000310
87944   100003  89013140090
87945   100003  8901314009081
87946   100003  8901314009111
87947   100003  8901314009159
87948   100003  10000320

现在我想返回sku 100003的单行,单列中的所有条形码用逗号分隔,MRP和成本相同。

请注意,我以100003 sku为例,我想要返回的productvariant中有很多行。

0 个答案:

没有答案