我这有两张表,t_xm,t_ren
t_xm中有xm_id,xm_name,
t_ren中有xm_id,ren_name,ren_xh(序号),ren_unit(单位)
我在报表中要产生这样的效果项目编号 项目名称 完成人
张三(河北大学)
2009001 人员管理系统 李四(河北理工)
王五(天涯网络有限公司)
一个项目的完成人可能有很多,但报表中最多显示5个,每个项目的完成人序号从1开始依次向下排的,且如果公司名称太长,会用省略号表示,如 张三(河北网络传媒有限责任…)请问sql语句怎么写,或者这个报表怎么制作
我用的是Delphi+fastreport4.68
t_xm中有xm_id,xm_name,
t_ren中有xm_id,ren_name,ren_xh(序号),ren_unit(单位)
我在报表中要产生这样的效果项目编号 项目名称 完成人
张三(河北大学)
2009001 人员管理系统 李四(河北理工)
王五(天涯网络有限公司)
一个项目的完成人可能有很多,但报表中最多显示5个,每个项目的完成人序号从1开始依次向下排的,且如果公司名称太长,会用省略号表示,如 张三(河北网络传媒有限责任…)请问sql语句怎么写,或者这个报表怎么制作
我用的是Delphi+fastreport4.68
第二个可以用case when ... then ...但是既然是程序,还是建议直接用order by xm_id, ren_xh
然后程序做显示处理
FROM t_xm,
(SELECT ren_name,ren_xh,ren_unit,row_number() over (partition by xm_id order by ren_xh) RN
FROM t_ren) R
WHERE T_XM.XM_ID = R.XM_ID
AND R.RN<=5