0

我正在使用 SQL Server 2008

我有一个结果1

ProductCode    ApprovedQuantity productlineid
----------------------------------------
599-128-001     1              1
599-129-001     0              1

结果集 2

productlineid  Damage
------------------------------
   1           MissingCriticalComponents
   1           BrokenConnector/Clip

我想从两个 select 语句中加入上述两个结果集,如下所示

 ProductCode    ApprovedQuantity   MissingCriticalComponents BrokenConnector/Clip
-----------------------------------------------------------------------------------
599-128-001     7
599-129-001     5

结果集 2 值是动态的(即损坏类型不固定。它会有所不同。)我想将结果集 2 行值添加为列值,结果集 1 具有空/空行值。

我可以将两个 select 语句合并为一个,然后设置如下所示的结果集

 ProductCode    ApprovedQuantity     Damage
--------------------------------------------------------    
599-128-001     7       Broken Connector/Clip
599-129-001     5       Broken Connector/Clip
599-128-001     7       Missing Critical Components
599-129-001     5       Missing Critical Components

请提供您的意见

更新:

这是针对零售产品采购订单的。PFB 是我的 Requirement 的简化版本。我有一个产品线表、产品表、采购订单表和损坏类型表。

产品线表

 Productlineid       productlinename
-------------------------------------
     1                   xx
     2                   yy

产品表

   ProductCode    Productlineid     .....
-----------------------------------------------------------------------------------
599-128-001     1
599-129-001     1
599-128-002     2
599-129-002     2

损坏表

productlineid  Damage
------------------------------
  1           MissingCriticalComponents
  1           BrokenConnector/Clip
  2           water damaged
  2           brokenLens

订单明细表

  ProductCode    ApprovedQuantity     OrderID
--------------------------------------------------------    
599-128-001     7       101
599-129-001     5       101
599-128-001     7       102
599-129-001     5       102

用户界面:有一个带有导出到 excel 选项/网格视图的订单管理屏幕

使用 Order id 作为输入,我需要将订单详细信息连同其损坏类型作为具有空行值的新列来获取。通过 Excel 或网格,他们将更新每个订单的损坏单元。

我的目标是得到如下所示的结果集

 ProductCode    ApprovedQuantity   MissingCriticalComponents BrokenConnector/Clip
-----------------------------------------------------------------------------------
599-128-001     7
599-129-001     5
4

1 回答 1

0

您只需要一个 SELECT QUERY 来为您提供您显示的第三张表吗?

假设,您的两个结果是单个表上的两个选择...

SELECT T1.productCode, T1.ApprovedQuantity, T2.Damage
FROM TABLE1 T1
LEFT JOIN TABLE2 T2 ON T2.productlineid  = T1.productlineid  

那是你想要的吗?

于 2013-10-21T15:26:14.937 回答