2017-02-23 56 views
0

我有一个查询返回的结果我有,但我不知道如何处理将其更改为我的程序用来发送数据的convetion:把选择行的唯一结果一行

SELECT 
     [contract_member_brg_attr].attr_val AS 'field_properties', 
     [contract_attr].attr_val   AS 'contract_number', 
     [other_contract_attr].attr_val  AS 'supplier_number', 
     [MFR].ITEM_NAME      AS 'supplier_name' 
FROM [contract_member_brg_attr] 
     INNER JOIN [contract_member_brg] 
       ON [contract_member_brg_attr].item_id = 
        [contract_member_brg].item_id 
     INNER JOIN [contract_attr] 
       ON [contract_attr].item_id = 
        [contract_member_brg].[contract_item_id] 
        AND [contract_attr].field_id = 413 
     INNER JOIN [contract_attr] AS [other_contract_attr] 
       ON [other_contract_attr].item_id = 
        [contract_member_brg].[contract_item_id] 
        AND [other_contract_attr].field_id = 234 
     INNER JOIN [MFR] as [MFR] 
       ON [MFR].ITEM_PK = 
        [other_contract_attr].attr_val; 

结果: enter image description here

我的问题是,我希望这些结果的所有唯一值在1行上。所以在这种情况下,它将是所有field_properties和每个contract_number,supplier_number,supplier_name中的一个。

我该如何做到这一点?

编辑: 这是我怎么会希望它看起来:

    all on one row: 
        column1= 388 
        column2 = FEB 22 2017 
        column3 = FEB 22 2017 
        column4 = test 2 
        column5 = test 3 
        column6 = true 
        column7 = b5v5b5b5bb5 
        column8 = A180 
        column9 = ABBOTT NUTRITION 
+0

编辑你的问题,表明你想返回的结果。 –

+0

@GordonLinoff我编辑了我想要的结果。谢谢。 –

+0

您正在寻找一个动态数据透视表。 http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query – scsimon

回答

0

请看看我的绕枢轴的问题。它有几个全成答案: How to apply pivot to result of query

SELECT * 
FROM (
    SELECT 
      'id', 
      'field_properties', 
      'contract_number', 
      'supplier_number', 
      'supplier_name' 
    FROM (
     SELECT 
       row_number() over (ORDER BY [contract_member_brg_attr].id) AS 'id' \\should be some analog for your DB 
       [contract_member_brg_attr].attr_val AS 'field_properties' ... 
       \\your original query 
    ) 
) 
pivot (
    MIN('field_properties') \\any agregation function 
    FOR ID IN (1, 2, 3, 4, 5, 6) 
) pvt