【发布时间】:2011-06-13 20:46:13
【问题描述】:
这是我的查询:
SELECT ad.Name, av.Value AS Attribute1, ctv.Value AS Attribute2
FROM AttributeDefinitions AS ad WITH (nolock)
INNER JOIN AttributeValues AS av WITH (nolock)
ON ad.AttributeDefinitionID = av.AttributeDefinitionID
INNER JOIN AttributeCategories
ON ad.AttributeCategoryID = AttributeCategories.AttributeCategoryID
LEFT OUTER JOIN CodeTableValues AS ctv WITH (nolock)
ON av.CodeTableValueID = ctv.CodeTableValueID
WHERE (AttributeCategories.Name = 'Camp') AND (av.AttributeValueGroupID = 9840)
我的结果如下所示:
Name Attribute1 Attribute2
Childs Age: 10
Attended Camp Before?: Yes
Childs T-Shirt Size: large NULL
Allergies Description none NULL
Phone # 212-555-1212 NULL
Pickup Mary Jordan NULL
Name= Name of Attribute Column
Attribute1 = Data is from a free Form
Attribute2 = Data is from a Drop down Menu
我想做的是旋转数据,以便“名称”列中的信息成为列标题,我需要组合属性 1 和 2 中的值 这就是我的结果应该是这样的:
*Childs Age Attended Camp Before? Childs T-Shirt Size Allergies Description Phone# Pickup*
10 yes large none 212-555-1212 Mary Jordan
【问题讨论】:
-
如果您使用的是 SQL server 2005 或更高版本,您可以使用Pivot
-
选择哪个属性的逻辑是什么? Attribute1 是否总是优先于 Attribute2?