简体   繁体   中英

In SQL Server 2008, how to write query to get top 10 records in group wise and I want to display that in single row column like pivot

  • reccod = 1 indicates note
  • reccod = 2 indicates terms and condition

These are my table structures; from this I want to get output as

ponumb column1   column2   column3   column4   column5  ... column 11  col12
8615   note po 1 note po 2 note po 3 note po 4 note po 5 .. terms&cond1 t&2

Sample data:

PONUMB  RECCOD  SRLNUB  DESCRP
------------------------------------
8615    1           1   NOTE PO 1
8615    1           2   NOTE PO 2
8615    1           3   NOTE PO 3
8615    1           4   NOTE PO 4
8615    1           5   NOTE PO 5
8615    1           6   NOTE PO 6
8615    1           7   NOTE PO 7
8615    1           8   NOTE PO 8
8615    1           9   NOTE PO 9
8615    1           10  NOTE PO 10
8615    1           11  NOTE PO 11
8615    1           12  NOTE PO 12
8615    2           1   TERMS AND CONDITION 1
8615    2           2   TERMS AND CONDITION 2
8615    2           3   TERMS AND CONDITION 3
8615    2           4   TERMS AND CONDITION 4
8615    2           5   TERMS AND CONDITION 5
8615    2           6   TERMS AND CONDITION 6
8615    2           7   TERMS AND CONDITION 7
8615    2           8   TERMS AND CONDITION 8

you can create 2 seprate pivots, one for Note and one for Terms then use this query

select * from 
(select ponumb from table group by ponumb) as masterTable
left outer join (pivotqueryNotes) as Notes on notes.ponumb = masteratable.Ponumb
left outer join (pivotqueryTerms) as Terms on terms.ponumb = masteratable.Ponumb

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM