2016-06-24 10 views
0

Ich habe diese Abfrage dynamisch in SQL Server-Attribut: -Wie bekommen Namen

select distinct pav.ProductID,pav.String_Value as Description ,pav1.String_Value as StockNumber,pav2.String_Value as ProductImage, 
pav3.String_Value as SpecSheet,pav4.String_Value as Price 
from core.ProductAttributesValues pav join core.Attribute a on pav.AttributeID=a.ID and a.Name='Description' 
inner join core.ProductAttributesValues pav1 on pav1.ProductID=pav.ProductID 
inner join core.Attribute a1 on pav1.AttributeID=a1.ID and a1.Name='StockNumber' 
inner join core.ProductAttributesValues pav2 on pav2.ProductID=pav1.ProductID 
inner join core.Attribute a2 on pav2.AttributeID=a2.ID and a2.Name='ProductImage' 
inner join core.ProductAttributesValues pav3 on pav3.ProductID=pav2.ProductID 
inner join core.Attribute a3 on pav3.AttributeID=a3.ID and a3.Name='SpecSheet' 
inner join core.ProductAttributesValues pav4 on pav4.ProductID=pav3.ProductID 
inner join core.Attribute a4 on pav4.AttributeID=a4.ID and a4.Name='Price' 

Ich möchte a1.Names passieren (das heißt: - Beschreibung, Stock Number, Produktbild, etc.), dynamisch. diese

+0

Laufen Sie wirklich diese Abfrage auf 4 verschiedenen Versionen von SQL Server ?! – DavidG

+0

So funktioniert Stackoverflow nicht. Jetzt haben die Leute keine Ahnung was Sie wirklich tun und trauen Ihrer Frage nicht. – DavidG

+1

'Nein nur in SQL-Server' ... David fragte, welche _version_ von SQL Server Sie verwenden. –

Antwort

0

Versuchen ...

SELECT 
    pav.ProductID 
    ,CASE WHEN a.Name = 'Description' THEN pav.String_Value ELSE NULL END AS Description 
    ,CASE WHEN a.Name = 'StockNumber' THEN pav.String_Value ELSE NULL END AS StockNumber 
    ,CASE WHEN a.Name = 'ProductImage' THEN pav.String_Value ELSE NULL END AS ProductImage 
    ,CASE WHEN a.Name = 'SpecSheet'  THEN pav.String_Value ELSE NULL END AS SpecSheet  
    ,CASE WHEN a.Name = 'Price'   THEN pav.String_Value ELSE NULL END AS Price  
FROM core.ProductAttributesValues pav 
INNER JOIN core.Attribute a ON pav.AttributeID = a.ID 
    AND a.name IN ('Description', 'StockNumber', 'ProductImage', 'SpecSheet','Price') 
Verwandte Themen