注册 登录
编程论坛 SQL Server论坛

复杂的题,请解决一下

taoxinhui 发布于 2007-12-27 20:11, 1391 次点击
我现在有两个表第一个表
ID NAME   BOOK    DATA
1  JOKE   SHUXUE  2004-12-12
.
.
.
第二个表
S_ID  ID    S_LIKEMAN  picre
0001   1    小张         12
0002   1    小李         13
我现在要怎么写SQL语句.才出现
BOOK   S_LIKEMAN   picre S_LIKEMAN   picre
shuxue 小张          12     小李         13
意思就是书只能显示一次,他们的联系人都要显示.
6 回复
#2
purana2007-12-27 21:58
create table tb1(id int,name varchar(20),book varchar(20),date datetime)
insert tb1 values(1,'JOKE','SHUXUE','2004-12-12')

create table tb2(s_id varchar(10),id int,s_likeman varchar(20),pricre int)
insert tb2 values('0001',1,'小张',12)
insert tb2 values('0002',1,'小李',13)

declare @sql varchar(8000)
set @sql='select a.book'
select @sql=@sql+',max(case when b.s_likeman='''+s_likeman+''' then b.s_likeman end) s_likeman,
          max(case when b.pricre='+cast(pricre as varchar)+' then b.pricre end) pricre'
from (select distinct s_likeman,pricre from tb2) a

exec (@sql+' from tb1 a,tb2 b where a.id=b.id group by a.book')

drop table tb1,tb2

/*
book                 s_likeman            pricre      s_likeman            pricre      
-------------------- -------------------- ----------- -------------------- -----------
SHUXUE               小李                   13          小张                   12
*/
#3
taoxinhui2007-12-29 09:10
回复 2# 的帖子
是可以实现,最后一句drop table tb1,tb2,我也照着上去,结果给删除了。公司的损失,我都差点哭了
#4
XieLi2007-12-29 09:15
不是吧~~资料全都没啦
#5
purana2007-12-29 17:07
一乘不变地照抄..当然要付出后果.
#6
taoxinhui2007-12-30 14:58
回复 5# 的帖子
就是全抄了你的.我损失大了,后来细看,最后一句话,是删除表,这两天从新搞数据库,还好有备份,但是都是6月份的,也就是说这个6个月的辛苦我算白白做了
#7
madpbpl2007-12-31 01:43
当作一次教训吧,一乘不变的照抄没有任何意义的。
1