2014-06-11 2 views
0

이 질문은 매우 기본적인 질문 인 것 같지만 그렇지 않습니다. SUM을 원하지 않기 때문에 SQL Server 피벗을 사용할 수 없습니다.SQL Server 또는 C# transpose

SQL 데이터를 C# LINQ의 SQL 쿼리로 변환 할 수 있습니까? 어느 것이 가장 빠릅니까?

일반 데이터 이것으로

| Company | Product | Count | 
|---------|---------|-------| 
| Cloud | Nokia | 10 | 
| Cloud | Samsung | 30 | 
| Cloud | Sony | 42 | 
| Coms | Apple | 34 | 
| Coms | Nokia | 39 | 
| Coms | Samsung | 11 | 
| Coms | Sony | 22 | 
|  RP | Nokia | 22 | 
|  RP | Samsung | 29 | 
|  RP | Sony | 22 | 

:이 쿼리는

| Company | Nokia | Samsung | Sony | Apple | 
|---------|-------|---------|------|--------| 
| Cloud | 10 |  30 | 42 |  0 | 
| Coms | 39 |  11 | 22 |  34 | 
|  RP | 22 |  29 | 22 |  0 | 
+1

당신은 여전히 ​​사용할 수있는 'SUM()'(또는 'MAX()','MIN()'등) 기술적으로 그들은 단지 하나의 값에 작용 될 수 있기 때문이다. –

답변

1

:

SELECT 
    Company 
    , [Nokia] 
    , [Samsung] 
    , [Sony] 
    , [Apple] 
FROM 
    YourTable 
PIVOT (
    MAX(Count) FOR Product IN ([Nokia], [Samsung], [Sony], [Apple]) 
) 
AS p 

생산됩니다

| COMPANY | NOKIA | SAMSUNG | SONY | APPLE | 
|---------|-------|---------|------|--------| 
| Cloud | 10 |  30 | 42 | (null) | 
| Coms | 39 |  11 | 22 |  34 | 
|  RP | 22 |  29 | 22 | (null) | 
012 3,516,

SQLFiddle Demo

+0

노키아 + 삼성 + 소니 + 사과 = 82 –

+0

당신은 이것을 사용할 수 있습니다 : http://sqlfiddle.com/#!3/10ffc2/11 추가하려면 각 행의 합계를 어떻게 얻을 수 있습니까? 총계 열 – JiggsJedi