当一个组中有多个元素且每个元素都有唯一的值时,如何在SQL Server中重塑数据
在我的数据集中,有主要账户持有人和与该账户相关的个人,每个人都有自己的账户信息编号和销售编号当一个组中有多个元素且每个元素都有唯一的值时,如何在SQL Server中重塑数据,sql,sql-server,Sql,Sql Server,在我的数据集中,有主要账户持有人和与该账户相关的个人,每个人都有自己的账户信息编号和销售编号 select distinct cust.no_ as 'CUST1 number', cust.sales as 'CUST1 sales', cust2.no_ as 'CUST2 number', cust2.sales as 'CUST2 sales' from cust left join dmd on dmd.rowno_custdm
select distinct
cust.no_ as 'CUST1 number',
cust.sales as 'CUST1 sales',
cust2.no_ as 'CUST2 number',
cust2.sales as 'CUST2 sales'
from
cust
left join
dmd on dmd.rowno_custdmd_cust = cust.rowno
left join
dmdjnt on dmdjnt.rowno_dmdjnt_dmd = dmd.rowno
left join
cust as cust2 on cust2.rowno = dmdjnt.rowno_dmdjnt_cust2
输出:
CUST1 Number CUST1 Sales Number CUST2 Number CUST2 Sales Number
1 111 2 22
1 111 3 333
1 111 4 44
1 111 5 55555
6 666 NULL NULL
7 777 8 88
我尝试了以下方法,列出了所有的数字,但因为销售数字可能不是最高的,所以不起作用
select distinct
cust.no_ as 'CUST1 number',
min(cust2.no_) as 'CUST2 number',
(case
when min(cust2.no_) <> max(cust2.no_)
then max(cust2.no_)
end) as 'CUST3 number'
from
cust
left join
dmd on dmd.rowno_custdmd_cust = cust.rowno
left join
dmdjnt on dmdjnt.rowno_dmdjnt_dmd = dmd.rowno
left join
cust as cust2 on cust2.rowno = dmdjnt.rowno_dmdjnt_cust2
CUST1 Number CUST1 Sales Number CUST2 Number CUST2 Sales Number CUST3 Number CUST3 Sales Number CUST4 Number CUST4 Sales Number CUST5 Number CUST5 Sales Number
1 111 2 22 3 333 4 44 5 55555
6 666 NULL NULL NULL NULL NULL NULL NULL NULL
7 777 8 NULL NULL NULL NULL NULL NULL NULL