日期:2014-05-18 浏览次数:20530 次
create table [Table1]( [name] nvarchar(10),[time] datetime,[Class] nvarchar(10)) INSERT INTO [Table1]([name],[time],[Class])VALUES('第一个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第一个','2011-10-24','B班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第二个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第二个','2011-10-24','B班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第三个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第五个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第四个','2011-10-23','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第五个','2011-10-23','B班') go select * from Table1 -----执行结果如下: 第一个 2011-10-24 00:00:00.000 A班 第一个 2011-10-24 00:00:00.000 B班 第二个 2011-10-24 00:00:00.000 A班 第二个 2011-10-24 00:00:00.000 B班 第三个 2011-10-24 00:00:00.000 A班 第五个 2011-10-24 00:00:00.000 A班 第四个 2011-10-23 00:00:00.000 A班 第五个 2011-10-23 00:00:00.000 B班
--想要得到的结果如下: 第一个 2011-10-24 00:00:00.000 A班 第一个 2011-10-24 00:00:00.000 B班 第二个 2011-10-24 00:00:00.000 A班 第二个 2011-10-24 00:00:00.000 B班 第三个 2011-10-24 00:00:00.000 A班 第三个 2011-10-24 00:00:00.000 B班 --添加 第五个 2011-10-24 00:00:00.000 A班 第五个 2011-10-24 00:00:00.000 B班 --添加 第四个 2011-10-23 00:00:00.000 A班 第四个 2011-10-23 00:00:00.000 B班 --添加 第五个 2011-10-23 00:00:00.000 A班 --添加 第五个 2011-10-23 00:00:00.000 B班
select a.[name],a.[time],b.[Class] from ( select distinct [name],[time] from table1 ) a cross join ( select distinct [Class] from table1 ) b
------解决方案--------------------
create table [Table1]( [name] nvarchar(10),[time] datetime,[Class] nvarchar(10)) INSERT INTO [Table1]([name],[time],[Class])VALUES('第一个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第一个','2011-10-24','B班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第二个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第二个','2011-10-24','B班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第三个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第五个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第四个','2011-10-23','A班') INSERT INTO [Table1]([name],[time],[Class])VALUES('第五个','2011-10-23','B班') go select name,a.time,b.Class from ((select distinct name,time from Table1)a cross join (select time,class from Table1)b ) where a.time=b.time group by name,a.time,b.Class order by CHARINDEX(name,'第一个第二个第三个第四个第五个') drop table Table1 /*name time Class ---------- ----------------------- ---------- 第一个 2011-10-24 00:00:00.000 A班 第一个 2011-10-24 00:00:00.000 B班 第二个 2011-10-24 00:00:00.000 A班 第二个 2011-10-24 00:00:00.000 B班 第三个 2011-10-24 00:00:00.000 A班 第三个 2011-10-24 00:00:00.000 B班 第四个 2011-10-23 00:00:00.000 A班 第四个 2011-10-23 00:00:00.000 B班 第五个 2011-10-23 00:00:00.000 A班 第五个 2011-10-23 00:00:00.000 B班 第五个 2011-10-24 00:00:00.000 A班 第五个 2011-10-24 00:00:00.000 B班 (12 行受影响) */
------解决方案--------------------
create table [Table1]( [name] nvarchar(10),[time] datetime,[Class] nvarchar(10)) INSERT INTO [Table1]([name],[time],[Class])VALUES('第一个','2011-10-24','A班') INSERT INTO [Table1]([name],[time],