日期:2014-05-18  浏览次数:20530 次

求sql语句...
SQL code

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班



SQL code

--想要得到的结果如下:
第一个    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班 



结果贴出来,也就一目了然...



------解决方案--------------------
SQL code
select a.[name],a.[time],b.[Class]
from (
select distinct [name],[time]
from table1
) a cross join (
select distinct [Class]
from table1
) b

------解决方案--------------------
SQL code
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 行受影响)
*/

------解决方案--------------------
SQL code
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],