У меня есть запрос, как этотКак UNPIVOT столбец с различным типом данных SQL Server
SELECT
totalvolume = SUM(volume),
totalusage = SUM(usage),
percentage = CAST(SUM(usage) * 100/SUM(volume) as decimal (10,2)),
YEAR
FROM
table1
и я получаю таблицу, как показано ниже
|totalvolume|totalusage|percentage|Year
|--------------------------------------
| 100 | 50 | 50.00 |2016
| 200 | 50 | 25.00 |2015
Моя цель состоит в том, чтобы таблица список выглядит это с помощью PIVOT
:
|Type |2015 |2016 |
|------------------------ |
| totalvolume| 200 | 100 |
| totalusage | 50 | 50 |
| percentage |25.00|50.00 |
Поэтому я решил создать эту таблицу первой помощи) UNPIVOT
:
Type | Value | year
-------------------
totalvolume |100 |2016
totalusage |50 |2016
percentage |50.00 |2016
totalvolume |200 |2015
totalusage |50 |2015
percentage |25.00 |2015
но в моем UNPIVOT
запросе
SELECT
Type, Value, Year
FROM
<my table query>
UNPIVOT
(value FOR Type IN (totalvolume, totalusage, percentage))
Там есть ошибка в моей SQL:
Тип столбца «Процент» конфликтов с типом других столбцов, указанных в UNPIVOT
Так же есть решение для золя это проблема без изменения типа данных?
Если исключить процент колонки я мог бы получить вид я хочу с помощью шарнира, так что будет как этот
|Type |2015 |2016 |
|------------------------ |
| totalvolume| 200 | 100 |
| totalusage | 50 | 50 |
Но мне нужно процент строк, тоже.
Заранее спасибо
Как поворот, так и форматирование (например, «проценты») действительно представляют функции инструментальных средств, а не функции базы данных. Что вы делаете с этими данными? Отправка его в виде отчета? Используйте инструмент отчетности. –