【发布时间】:2016-12-12 03:00:26
【问题描述】:
这是我的桌子 1
BId GId Title Limit
1 1 Optical 10
2 1 Dental 5
3 1 Massage 4
这是表 2
SId BId Include ServiceTitle LimitApply
1 1 True Optical False
2 2 False Dental True
3 3 False Massage False
我想要像下面这样的决赛桌。
BId Title Limit Optical-Include Optical-LimitApply Dental-Include Dental-LimitApply Massage-Include Massage-LimitApply
1 Optical 10 True False
2 Dental 5 False True
3 Massage 4 False True
我是 sql 新手,我正在尝试创建数据透视表,但我不确定如何获取结果表。
WITH Sales AS (
SELECT
S.BId,
S.Title,
I.Include,
I.ServiceTitle,
I.LimitApply
FROM
dbo.BenefitLimit S
INNER JOIN dbo.ServicesCombined I
ON S.BId = I.BId
)
SELECT * FROM Sales
PIVOT (Max(Include) FOR Include IN (Optical, Dental, Massage)) P
我没有得到我想要的结果。我有超过 50,000 条 BId 记录。任何帮助将不胜感激。
【问题讨论】:
-
我建议你使用
case when。 -
你不觉得在列名和行内容上都有标题是不是有点矫枉过正?
-
这里有多少个标题?只有 3 个?
-
有16个标题
-
下面发布的一个答案看起来不错,但我需要创建一个视图
标签: sql sql-server pivot pivot-table