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

用SQL怎么实现这样一个记录数据显示?
表名   su_super_sendreply
          主键ID   发送人ID   接受人ID   发送时间   处理标志   发送内容   回复内容     回复时间
字段     ID           SendID       RecvID       AddDt             Deal     SendNote     ReplyNote   ReplyDt
User   表   有   userid   和   username   可用
  主要是个信息发送接收的问题(有的只需别人查看而不要求其回复)
比如我   一次发送两个人只要求查看,那么会插入如下两条记录
1     100120   100130   ....(其他的省略)
2     100120   100140   ....
我查看发送记录是     就是(比如)
记录一
发送人     张真人
接收人     丘道长
发送时间   xxxxx
发送内容   xxxxxx

记录二
发送人     张真人
接收人     黄师傅
发送时间   xxxxx
发送内容   xxxxxx

这是我作为发送方看到的   我按照别人设计的表是那么显示记录的
现在要求这么来显示
同上   若我一次发给了两个人   仍然是同上插入两条记录
但显示格式是
记录一
发送人   张真人
接收人   丘道长,黄师傅
发送时间   xxxxx
发送内容   xxxxx

有什么好点方法可行呢?谢谢了




------解决方案--------------------
写个函数,传递的参数是发送人的名称,然后返回发送给谁。很简单的
------解决方案--------------------
create function RecPerson(@SendPerson varchar(20))
returns varchar(1000)
as
begin
declare @a varchar(1000)
select @a=coalesce(@a+ ', ', ' ')+接受人 from [Table] where 发送人=@SendPerson
return @a
end

--调用

select distinct 发送人,dbo.RecPerson(发送人),.... from [Table]
------解决方案--------------------
楼主通过什么确定给两个人发的是同一封信的,通过发送时间?
我觉得表中应该有一个标志用来标示哪些记录是群发的
chuifengde(树上的鸟儿)的语句完全可以实现