2017-02-23 4 views
0

私は私が持っているが、私は私のプログラムがデータを送信するために使用するconvetionにそれを変えるアプローチする方法がわからない結果を返すクエリがあります。一列にSELECT行のユニークな結果を置く

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のいずれかになります。

私はどのような方法で利用できますか?

EDIT: これは私がそれを見たいと思うだろうかです:

    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 
関連する問題