我有两个表 一个是项目表 , 项目ID |责任部门一个是任务表 ,  所属项目ID | 任务名称 | 责任人
任务表里是所有的任务,一个项目可以对应多个任务。
现在我想合并成这样的一个表, 项目ID | 责任部门| 任务一| 任务二| 任务三|有什么好的方法可以合并, 就是说把把 属于那个项目的所有任务排在一起。

解决方案 »

  1.   

    left join ,right join  都可!
      

  2.   

    我师傅说的,在oracle里面有个decode可以实现表的行列互换。不过,我还没学会,建议楼主参看一下decode的语法。
      

  3.   

    case when 语句可以行列转换 但是需要一列式固定的另外 在数据库中转换也不太好 影响效率 建议在外部转换比如在用gridview显示的时候行相同的单元格就合并 就可以实现
      

  4.   

    怎么join都是白搭,需要通过编程的手段(无论是SQL还是C#)实现
    建议查出2表数据通过C#合成到第3个表foreach(datarow row in dt1.rows){
    datarow newrow = dt3.newrow();
    newrow["项目ID"] = row["项目ID"];
    newrow["责任部门"] = row["责任部门"];
    datarow[] rows = dt2.select("项目ID="+row["项目ID"]);
    if(rows.length>0) newrow["任务一"] = row[0]["任务名称"];
    if(rows.length>1) newrow["任务二"] = row[0]["任务名称"];
    if(rows.length>2) newrow["任务三"] = row[0]["任务名称"];
    dt3.rows.add(newrow);
    }
      

  5.   

    外连接。left join或right join.