日期:2014-05-18 浏览次数:20655 次
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],