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

如何给每个日期都添加上另外一张表的姓名
帖子标题实在是不知道咋描述,大侠们看下面吧,一目了然

tb1
日期
2012-1-2
2012-1-3
2012-1-4


tb2
姓名
张三
李四


如何得到下面的查询结果
日期 姓名
2012-1-2 张三
2012-1-2 李四
2012-1-3 张三
2012-1-3 李四
2012-1-4 张三
2012-1-4 李四


------解决方案--------------------
select * from tb1 cross join tb2
------解决方案--------------------
SQL code

declare @tb1 table (日期 varchar(10)) --如果是字符类型的就是这样
insert into @tb1
select '2012-1-2' union all
select '2012-1-3' union all
select '2012-1-4'

declare @tb2 table (姓名 varchar(4))
insert into @tb2
select '张三' union all
select '李四'

select * from @tb1 cross join @tb2 order by 1
/*
日期         姓名
---------- ----
2012-1-2   张三
2012-1-2   李四
2012-1-3   张三
2012-1-3   李四
2012-1-4   张三
2012-1-4   李四
*/

/*
--如果时间转成字符就这样:
select convert(varchar(10),日期,120) from tablename
*/