oOracleConn.Open();
                string select;
                select = "select ymd,sum(stoptim) as sum ,devid "
                        +"from dev_bandata "
                        +"group by ymd,devid";
                
                OracleDataAdapter da = new OracleDataAdapter(select, oOracleConn);                DataSet ds = new DataSet();
                System.Data.DataTable sum_table = new System.Data.DataTable(); //添加一个表sum_table
                da.Fill(ds, "sum_table");                select = "select devid ,devname from dev_bandata ";
                da = new OracleDataAdapter(select, oOracleConn);
                System.Data.DataTable name_table = new System.Data.DataTable();
                da.Fill(ds, "name_table");                select = "select ymd,sum,devname from sum_table,name_table where sum_table.devid=name_table.devid";
                da = ?????  //这里应该怎么写?
                System.Data.DataTable result_table = new System.Data.DataTable();
                da.Fill(ds, "result_table");首先问问我这种思路是否可行?
我查了相关问题,好像可以用一条sql语句来完成,不过我觉得可读性不高。
我是新手,请多帮忙。

解决方案 »

  1.   

    TO:select = "select ymd,sum,devname from sum_table,name_table where sum_table.devid=name_table.devid";楼主的目的是什么?想对DataSet中的两个表进行联合查询?
      

  2.   

    未测试,仅供参考!
    select a.devname,b.ymd,b.sum from dev_bandata a,(select ymd,sum(stoptim) as sum,devid from dev_bandata group by ymd,devid) b where a.devid=b.devid
      

  3.   


    就是想对DataSet中的两个表进行联合查询。
    而我又不太想用51Crack(无忧)的方法。
      

  4.   

    这个用DataRelation:
    http://topic.csdn.net/t/20020418/14/657290.html
      

  5.   

    //这样的t-sql一定是错的,因为sumtable和name_table在库中不存在
    //你以前的工作是将数据集放在内存中,在运行web的服务器中
    //可能和数据服务器都不在一台机器上了
    select = "select ymd,sum,devname from sum_table,name_table where sum_table.devid=name_table.devid";
    //所以你这样想直接再填充无论如何时都不可能成功
    da = ????? //这里应该怎么写?
    System.Data.DataTable result_table = new System.Data.DataTable();
    da.Fill(ds, "result_table");
    //如果一定想这样做,来让我们想想我们有的是什么,我们需要的是什么
    //我们在web服务器上有两个dataset ,我们想要的是另一个table可以从sum_table克隆一个结构,加入新的字段,然后将两个表的记录一条条插入
    如果sum_table不会在后面被使用,那么可以直接给它新加一个字段,然后一条条更新记录
    无论如何,这都不是一个好主意,好多orm支持关系映射,但我个人并不喜欢这样,关系型数据库的优点在于它是"关系型的"首先问问我这种思路是否可行?
    我查了相关问题,好像可以用一条sql语句来完成,不过我觉得可读性不高。
    我是新手,请多帮忙。///其实真的更好的解决办法是使用tans-sql直接体现它们的关系并解决现在有两个结果集
    select ymd,sum(stoptim) as sum ,devid 
    from dev_bandata 
    group by ymd,devidselect devid ,devname 
    from dev_bandata
    看看两个表现在是什么关系
    它们来自一个数据表
    可能是一对一映射/一对多/多对一/多对多
    从你的原文中也看不出关系
    我们假设是一对一的
    那么
    简单的改一下select ymd,sum(stoptim) as sum ,devid,devname 
    from dev_bandata 
    group by ymd,devid,devname
    即可