注意:不能重复数据,重复的留空,请问sqlserver怎么呈现这种效果
分组,效果你在前端显示时,处理,数据库不干这事,实现这种样式的展示组件很多的
SELECT A.经销商编号,a.推广名称,b.订单编号 from (
SELECT 经销商编号,推广名称,ROW_NUMBER() OVER (PARTITION BY 经销商编号 ORDER BY 经销商编号) cnt1 from 表A
) a
left join
(
SELECT 经销商编号,订单编号,ROW_NUMBER() OVER (PARTITION BY 经销商编号 ORDER BY 经销商编号) cnt2 from 表B
) on a.经销商编号=b.经销商编号 and a.cnt1=b.cnt2
union all
SELECT '' as 经销商编号,'' as 推广名称,b.订单编号 from
(
SELECT 经销商编号,订单编号,ROW_NUMBER() OVER (PARTITION BY 经销商编号 ORDER BY 经销商编号) cnt2 from 表B
) b where not exists( select 1 from (
SELECT 经销商编号,推广名称,ROW_NUMBER() OVER (PARTITION BY 经销商编号 ORDER BY 经销商编号) cnt1 from 表A
) a where a.经销商编号=b.经销商编号 and a.cnt1=b.cnt2
主要注意通过OVER的对同一个经销商进行编号,其他应该没有太多难点,顶多就是多嵌套几层
以上SQL没有调测过,就是一个思路,错误还得自己调