表
ID month
A 1
B 1
C 1
A 2
C 2
A 3
B 3
显示:
1 A
1 B
1 C
2 A
2 空
2 C
3 A
3 B
3 空
------解决方案--------------------
- SQL code
select t.mm,e.IDfrom( select a.ID,b.[month] as mm from (select distinct ID from tb) a cross join (select distinct [month] from tb) b)t left join tb e on t.ID = e.ID and t.mm = e.[month]
------解决方案--------------------
------解决方案--------------------
- SQL code
;with cte as(此处放你的那一堆)此处放1楼的那一堆,并把表名改成 cte
------解决方案--------------------
我补句2005+,蹭分
------解决方案--------------------
- SQL code
--创建测试表CREATE TABLE #T( ID varchar(2), month int)--插入测试数据INSERT INTO #TSELECT 'A',1 UNION ALLSELECT 'B',1 UNION ALLSELECT 'C',1 UNION ALLSELECT 'A',2 UNION ALLSELECT 'C',2 UNION ALLSELECT 'A',3 UNION ALLSELECT 'B',3 SELECT A.month,ISNULL(B.ID,'') AS ID FROM (SELECT month,ID FROM(SELECT DISTINCT ID FROM #T) A,(SELECT DISTINCT month FROM #T) B) A LEFT JOIN #T BON A.month=B.month and A.ID=B.IDORDER BY month,A.ID--删除测试表DROP TABLE #T