Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

TSQL PIVOT МНОГО КОЛОНИ

Тъй като искате да завъртите няколко колони с данни, първо бих предложил да отмените завъртането на резултата , резултат и степен колони, така че да нямате няколко колони, но ще имате няколко реда.

В зависимост от вашата версия на SQL Server, можете да използвате функцията UNPIVOT или CROSS APPLY. Синтаксисът за отмяна на центрирането на данните ще бъде подобен на:

изберете съотношение, колона, стойност от GRAND_TOTALScross apply( изберете 'резултат', cast(резултат като varchar(10)) съюз всички изберете 'резултат', cast(резултат като varchar(10)) съюз всички изберете 'оценка ', степен) c(col, value) 

Вижте SQL Fiddle с демонстрация. След като данните бъдат отменени, можете да приложите функцията PIVOT:

изберете съотношение =col, [текущо съотношение], [коефициент на предавка], [коефициент на производителност], totalfrom( изберете съотношение, col, стойност от GRAND_TOTALS се прилага кръстосано ( изберете 'резултат', cast(резултат като varchar( 10)) union all изберете 'резултат', cast(резултат като varchar(10)) union all изберете 'grade', grade ) c(col, value)) dpivot( max(value) за съотношение в ([текущо съотношение], [предателно отношение], [коефициент на производителност], общо)) piv; 

Вижте SQL Fiddle с демонстрация. Това ще ви даде резултата:

<предварителен код>| СООТНОШЕНИЕ | ТЕКУЩО КОЕФИЦИЕНТ | ПРЕДАКАТНО РАБОТА | КОЕФИЦИЕНТ НА ​​ИЗПЪЛНЕНИЕ | ОБЩО ||--------|--------------|--------------|------ -------------|-----------|| клас | Добре | Добре | Задоволително | Добре || резултат | 1,29400 | 0,33840 | 0,04270 | (нула) || резултат | 60.00000 | 70,00000 | 50,00000 | 180,00000 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да деактивирате всички тригери в базата данни на SQL Server

  2. Какво е функция с таблично значение в SQL Server?

  3. Какви са най-добрите практики за използване на GUID като първичен ключ, по-специално по отношение на производителността?

  4. няма sqljdbc_auth в java.library.path

  5. Отстраняване на проблеми с репликацията на транзакции на SQL Server