2016-12-08 3 views
0

Я пытаюсь заставить сводный стол работать. Я это на основе примеров, которые я нашел в Интернете:Пытается получить PIVOT, работая

select * 
from (
select CapVehicles.Cvehicle_DerText 
    , NVDDictionaryOption.DO_Description as OptionText 
    , [V12 2dr Touchtronic Auto] 
    , [V12 Launch Edition 2dr Touchtronic Auto] 
    , 1 as c 
from NVDStandardEquipment 
left join NVDDictionaryOption on NVDStandardEquipment.SE_OptionCode = NVDDictionaryOption.DO_OptionCode 
left join NVDDictionaryCategory on NVDDictionaryOption.DO_CatCode = NVDDictionaryCategory.DC_CatCode 
left join CapVehicles on NVDStandardEquipment.SE_Id = CapVehicles.CVehicle_Id 
where NVDStandardEquipment.SE_Id in (
    select distinct CVehicle_Id 
    from CapVehicles 
    left join CapDer on CapVehicles.CVehicle_Id = CapDer.CDer_Id 
    where CapDer.cder_discontinued is null 
    and capvehicles.cvehicle_mantext = 'ASTON MARTIN' 
    and capvehicles.cvehicle_shortmodtext = 'DB11' 
    ) and NVDStandardEquipment.SE_EffectiveTo is null 
) as s 
pivot (max(c) for Cvehicle_DerText in 
    ([V12 2dr Touchtronic Auto], [V12 Launch Edition 2dr Touchtronic Auto])) as pvt 

Мои исходные данные выглядят как это, в основном я пытаюсь показать в сетке, какие транспортные средства имеют какие варианты, с вариантами в качестве строк и транспортных средств, как колонны ,

V12 2dr Touchtronic Auto | Adaptive damping system 
V12 2dr Touchtronic Auto | Cruise control 
V12 Launch Edition 2dr Touchtronic Auto | Adaptive damping system 
V12 Launch Edition 2dr Touchtronic Auto | Cruise control 

я получаю кучу ошибок с вышесказанным:

Неверное имя столбца 'V12 2DR Touchtronic Auto'.
Недопустимое имя столбца 'V12 Launch Edition 2dr Touchtronic Auto'.
Имя столбца «V12 2dr Touchtronic Auto», указанное в операторе PIVOT, конфликтует с существующим именем столбца в аргументе PIVOT.
Имя столбца «V12 Launch Edition 2dr Touchtronic Auto», указанное в операторе PIVOT, конфликтует с существующим именем столбца в аргументе PIVOT.
Столбец «V12 2dr Touchtronic Auto» был указан несколько раз для «pvt».

ответ

0

Я предполагаю, что 'V12 2Dr Touchtronic Auto', 'V12 Launch издание 2DR Touchtronic Авто' является значение, а не имена столбцов. вы должны удалить его из внутреннего выбора.

Попробуйте это:

select * 
from (
select CapVehicles.Cvehicle_DerText 
    , NVDDictionaryOption.DO_Description as OptionText 
    , 1 as c 
from NVDStandardEquipment 
left join NVDDictionaryOption on NVDStandardEquipment.SE_OptionCode = NVDDictionaryOption.DO_OptionCode 
left join NVDDictionaryCategory on NVDDictionaryOption.DO_CatCode = NVDDictionaryCategory.DC_CatCode 
left join CapVehicles on NVDStandardEquipment.SE_Id = CapVehicles.CVehicle_Id 
where NVDStandardEquipment.SE_Id in (
    select distinct CVehicle_Id 
    from CapVehicles 
    left join CapDer on CapVehicles.CVehicle_Id = CapDer.CDer_Id 
    where CapDer.cder_discontinued is null 
    and capvehicles.cvehicle_mantext = 'ASTON MARTIN' 
    and capvehicles.cvehicle_shortmodtext = 'DB11' 
    ) and NVDStandardEquipment.SE_EffectiveTo is null 
) as s 
pivot (max(c) for Cvehicle_DerText in 
    ([V12 2dr Touchtronic Auto], [V12 Launch Edition 2dr Touchtronic Auto])) as pvt 
Смежные вопросы