一对多的查询问题(不知道能不能实现)
设有以下2个表:
table1字段为:id,user,password
table2字段为:id,logindate
注:logindate可能有多条
问题:
如何把table1和table2中id相同的记录通过查询得到以下结果:(把table2中的多条记录变为查询结果中的多个字段)
id,user,password,logindate1,logindate2,logindata3,... (logindate数以记录条数最多的一条为准)
问题点数:20、回复次数:9Top
1 楼havt()回复于 2005-11-04 15:31:58 得分 0
补充一点,一个ID只能有一条记录。Top
2 楼havt()回复于 2005-11-05 09:21:23 得分 0
自己顶一下Top
3 楼havt()回复于 2005-11-06 20:13:46 得分 0
不能实现吗?Top
4 楼zlp321002(Life Is Good,Let's Shine)回复于 2005-11-06 20:20:02 得分 0
--可以啊!交叉表啊Top
5 楼zlp321002(Life Is Good,Let's Shine)回复于 2005-11-06 20:48:24 得分 20
--try
declare @s varchar(2000)
set @s='select A.id,A.[user],A.password'
select @s=@s+',['+logindate+']=max(case when logindate='''+logindate+''' then '''' end) '
from table2
group by logindate
print @s
set @s=@s+' from table1 A inner join table2 B on A.id=b.id group by A.id,A.[user],A.password '
exec(@s)Top
6 楼havt()回复于 2005-11-07 08:34:30 得分 0
谢谢!我先试一下。Top
7 楼havt()回复于 2005-11-07 16:03:02 得分 0
试了好多次,还是没试出来。
运行时出现一个错误(指向select那句):
从字符串转换为 datetime 时发生语法错误。
跟表中的logindate是日期型的有什么关系吗?请高手指点。Top
8 楼licrazy5201(licrazy5201)回复于 2005-11-07 16:12:42 得分 0
学习中^^^^^^^^^^^Top
9 楼havt()回复于 2005-11-08 10:09:03 得分 0
哪位高手能否写个单句SQL语句?Top




