2015-05-24 1 views
1

У меня есть таблица productSQL: запрос классифицировать элементы

area productname count 
a1  p1   5 
a2  p2   6 
a1  p2   9 
a2  p3   8 
a1  p3   1 

Я хочу, чтобы это было так; если это возможно в SQL, я использую SQL Server

a1  count(p1) count (p2) count(p3) 
a2  count(p1) count (p2) count(p3) 
. 
. 
an  count(p1) count (p2) count(p3) 
+2

Возможно дублируют: http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query Вам нужно 'Dynamic PIVOT', чтобы это было сделано. –

ответ

2

По конкретной проблеме, которую вы пытаетесь решить, следующий запрос будет работать. Эвальдас предложил ссылку, которая также является отличным примером динамического поворота.

select area, p1, p2, p3 
from 
(select area, productname, counter from test) t 
pivot 
(
    min(counter) 
    for productname in (p1, p2, p3) 
) as piv 
order by area; 

Пример: http://sqlfiddle.com/#!3/2ef59/19

+0

thanx alot sir :) –

Смежные вопросы