Sql server 2008 SQL Server如何透视联合查询
我有一个从不同表运行联接的查询:Sql server 2008 SQL Server如何透视联合查询,sql-server-2008,pivot,Sql Server 2008,Pivot,我有一个从不同表运行联接的查询: select b.first_name, d.client_fullname, a.plan_id, c.joint_info from PLAN_INFO a inner join JHI_USER b on a.created_by = b.login left join PLAN_INFO_CLIENT c on c.plan_id = a.plan_id and
select
b.first_name, d.client_fullname, a.plan_id, c.joint_info
from
PLAN_INFO a
inner join
JHI_USER b on a.created_by = b.login
left join
PLAN_INFO_CLIENT c on c.plan_id = a.plan_id
and c.plan_id is not null
left join
CLIENT d on d.client_id = c.client_id
left join
CLIENT_ADDRESS_DET e on e.client_id = d.client_id
order by
a.plan_id ASC
这就是结果
client_fullname | plan_id | joint_info
----------------+---------+------------
venus | 992 | M
Ric | 992 | J1
Ricardo | 992 | J2
Hisa | 992 | J3
M是主接头,J1是接头一,J2是接头二,该记录用于接头账户,以使其更加清晰
我需要将我的J2名称移动到第三列,如下所示:
client_fullname | plan_id | joint_name
venus | 992 | Ric
只需显示j1
尝试阅读pivot示例,但有点卡在这里
WITH CTE AS (
select b.first_name,d.client_fullname,a.plan_id,
c.joint_info
from PLAN_INFO a
inner join JHI_USER b on a.created_by = b.login
left join PLAN_INFO_CLIENT c
on c.plan_id =a.plan_id
and c.plan_id is not null
left join CLIENT d
on d.client_id =c.client_id
left join CLIENT_ADDRESS_DET e
on e.client_id = d.client_id
order by a.plan_id ASC
)
select client_fullname,plan_id,
(select client_fullname from cte b where a.plan_id=b.plan_id and
b.joint_info='J1') as joint_name
from cte a
where joint_info='M'
您可以为此使用条件聚合
SELECT MAX(CASE
WHEN c.joint_info = 'M'
THEN d.client_fullname
END) AS client_fullname,
a.plan_id,
MAX(CASE
WHEN c.joint_info = 'J1'
THEN d.client_fullname
END) AS joint_name
FROM PLAN_INFO a
INNER JOIN JHI_USER b ON a.created_by = b.login
LEFT JOIN PLAN_INFO_CLIENT c ON c.plan_id = a.plan_id
AND c.plan_id IS NOT NULL
LEFT JOIN CLIENT d ON d.client_id = c.client_id
LEFT JOIN CLIENT_ADDRESS_DET e ON e.client_id = d.client_id
GROUP BY a.plan_id
ORDER BY a.plan_id ASC;
我删除了CTE中的order by子句,然后它抛出sql错误子查询返回了超过1个值。这个查询对我来说很好,谢谢,先生,还有更多的列要去lol。。我非常感谢你的洞察力