powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / PIVOT или CASE
13 сообщений из 13, страница 1 из 1
PIVOT или CASE
    #39643261
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, всем доброго дня.
Работала я себе спокойно с кейсами, а тут сказали сделать тоже самое с PIVOT.
Есть у меня таблица в которой есть ключевое поле SampleID, поле NAME , где хранятся виртуальные столбцы и поле VALUE, где значения этих столбцов. Чтобы увидеть эту таблицу в нормальном виде, я писала так:
Код: sql
1.
(CASE when [CORPSAMPLEASSAY_N].[NAME] = 'Ag_MA-UT_ppm' then [CORPSAMPLEASSAY_N].[VALUE] ELSE NULL END) as [Ag_MA_UT_ppm]



Пытаюсь уже четвертый час разобраться с PIVOT, но он выдает пустые значения. А они есть!
Код: sql
1.
2.
3.
4.
declare  @CORPSAMPLEASSAY  table (sampleid varchar(255),name varchar(20), [value] float)
insert into @CORPSAMPLEASSAY  (sampleid, name,[value]) values ('UZ-001', 'Ag_MA_UT_ppm',0.05)
insert into @CORPSAMPLEASSAY  (sampleid, name,[value]) values ('UZ-001', 'As_MA_UT_ppm',2.05)
insert into @CORPSAMPLEASSAY  (sampleid, name,[value]) values ('UZ-001', 'Al_MA_UT_ppm',25)



Применяю вот так
Код: sql
1.
2.
select sampleid, [Ag_MA_UT_ppm], [Al_MA_UT_ppm], [As_MA_UT_ppm] from (select sampleid, name, value from [CORPSAMPLEASSAY] where sampleid='UZ-001')x
pivot (max(x.value) for name in ([Ag_MA_UT_ppm], [Al_MA_UT_ppm], [As_MA_UT_ppm]))z  



Выдает пустую таблицу.
Подскажите, пожалуйста, в чем моя ошибка? Когда
Код: sql
1.
Select * from @CORPSAMPLEASSAY

, то значения есть


Кажется у меня кривые руки...
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643268
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

что то я ничего не понял. у вас вообще компилится не должно если таблицы [CORPSAMPLEASSAY] нет

а вот так должно работать:
Код: sql
1.
2.
3.
4.
5.
6.
7.
declare  @CORPSAMPLEASSAY  table (sampleid varchar(255),name varchar(20), [value] float)
insert into @CORPSAMPLEASSAY  (sampleid, name,[value]) values ('UZ-001', 'Ag_MA_UT_ppm',0.05)
insert into @CORPSAMPLEASSAY  (sampleid, name,[value]) values ('UZ-001', 'As_MA_UT_ppm',2.05)
insert into @CORPSAMPLEASSAY  (sampleid, name,[value]) values ('UZ-001', 'Al_MA_UT_ppm',25)

select sampleid, [Ag_MA_UT_ppm], [Al_MA_UT_ppm], [As_MA_UT_ppm] from (select sampleid, name, value from @CORPSAMPLEASSAY where sampleid='UZ-001')x
pivot (max(x.value) for name in ([Ag_MA_UT_ppm], [Al_MA_UT_ppm], [As_MA_UT_ppm]))z  
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643270
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444, у меня ваш код работает. Единственное, исправьте
Код: sql
1.
from @CORPSAMPLEASSAY
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643275
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, у меня таблица не временная, а реальная, я просто для форума @ добавила

Тогда я вообще в тупике...
По запросу
Код: sql
1.
select * from [CORPSAMPLEASSAY] where [CORPSAMPLEASSAY].sampleid='KZN000107698'


Выдает данные как на картинке
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643276
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шК0ДЕР, а по запросу
Код: sql
1.
2.
select sampleid, [Ag_MA_UT_ppm], [Al_MA_UT_ppm], [As_MA_UT_ppm] from (select sampleid, name, value from [CORPSAMPLEASSAY] where sampleid='KZN000107698')x
pivot (max(x.value) for name in ([Ag_MA_UT_ppm], [Al_MA_UT_ppm], [As_MA_UT_ppm]))z 


Выдает сплошные нули...
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643277
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

а Вы внимательно присмотритесь, везде ли у Вас корректно указаны подчеркивания и тире?
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643278
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никогда не понимал необходимости использования PIVOT на сервере, чем вам OLAP/BI то не угодил? или вообще через Excel PIvot напрямую к серверу соединяйтесь и крутите сови данные как хотите
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643280
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
это необходимо для работы в Juputer через Anaconda
Для дальнейшей обработки данных
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643281
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ваша анаконда к нормальному кубу может подключаться?
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643284
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
настраивайте свою анаконду на SSAS через IIS пакет
https://pypi.org/project/xmla/
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643286
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39643295
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

katish444,

на вскидку из вашего скрина данных у вас значение колонки [Name] Ag_MA - UT_ppm а не Ag_MA _ UT_ppm


но вам правильно подсказывают крутить наборы удобнее в других средах нежели в sql
...
Рейтинг: 0 / 0
PIVOT или CASE
    #39644105
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, спасибо большое
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / PIVOT или CASE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]