现在有两组数据集合list<DataEntity>
public class DataEntity{
   private Long id;
   private String name;
   private Double value;
   private Date date;
   .....
}
一组为:
+----+----------+-------+------------+
| id | name     | value1| date       |
+----+----------+-------+------------+
|  1 | 北京大厦 |    12 | 2009-09-01 |
|  2 | 北京大厦 |    10 | 2009-09-02 |
|  3 | 北京大厦 |    11 | 2009-09-03 |
|  4 | 北京大厦 |    14 | 2009-09-04 |
| 13 | 南京大厦 |    14 | 2009-09-01 |
| 14 | 南京大厦 |    16 | 2009-09-02 |
| 15 | 南京大厦 |    18 | 2009-09-03 |
| 16 | 南京大厦 |    10 | 2009-09-04 |另一组为:
+----+----------+-------+------------+
| id | name     | value2| date       |
+----+----------+-------+------------+
|  1 | 北京大厦 |    13 | 2009-09-01 |
|  2 | 北京大厦 |    12 | 2009-09-02 |
|  3 | 北京大厦 |    14 | 2009-09-03 |
|  4 | 北京大厦 |    11 | 2009-09-04 |
| 13 | 南京大厦 |    14 | 2009-09-01 |
| 14 | 南京大厦 |    15 | 2009-09-02 |
| 15 | 南京大厦 |    17 | 2009-09-03 |
| 16 | 南京大厦 |    10 | 2009-09-04 |写一个方法按照时间对应关系得到
+----+----------+-------+------------+
| id | name  |value1/value2| date    |
+----+----------+-------+------------+
|  1 | 北京大厦 | 12/13 | 2009-09-01 |
|  2 | 北京大厦 | 10/11 | 2009-09-02 |
|  3 | 北京大厦 | 11/14 | 2009-09-03 |
|  4 | 北京大厦 | 14/11 | 2009-09-04 |
| 13 | 南京大厦 | 14/14 | 2009-09-01 |
| 14 | 南京大厦 | 16/15 | 2009-09-02 |
| 15 | 南京大厦 | 18/17 | 2009-09-03 |
| 16 | 南京大厦 | 10/10 | 2009-09-04 |急用,请大家多帮忙,非常感谢!!!

解决方案 »

  1.   

    select t1.name,t1.value1+'/'+t2.value2 as 'value1/value2' ,t1.date from 
    table1 t1,table2 t2 where t1.name=t2.name and t1.date=t2.date
      

  2.   

    我是从一个表中查询数据,每天9:00-17:00上班时间的用能量/全天的用能量。如果接近1的话说明能源没有浪费,比值越小说明下班时间浪费严重。谢谢回答,#2楼的SQL让我想到自连接。非常感谢!!!
      

  3.   

    为了试验方便,我将类型都处理成Stringpublic class DataEntity {
    private long id; 
      private String name; 
      private String value; 
      private String date;
    public DataEntity(long id,String name,String value,String date){
    this.id=id;
    this.name=name;
    this.value=value;
    this.date=date;
    }
    public long getId() {
    return id;
    } public String getName() {
    return name;
    } public String getValue() {
    return value;
    } public String getDate() {
    return date;
    }
    public void setId(long id) {
    this.id = id;
    }
    public void setName(String name) {
    this.name = name;
    }
    public void setValue(String value) {
    this.value = value;
    }
    public void setDate(String date) {
    this.date = date;
    }

    }测试类:import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    public class Test{
    public static void main(String[] args){
    List <DataEntity> listA=new ArrayList<DataEntity>();
    listA.add(new DataEntity(1,"北京大厦","12","2009-09-01"));
    listA.add(new DataEntity(2,"北京大厦","10","2009-09-02"));
    listA.add(new DataEntity(3,"北京大厦","11","2009-09-03"));
    listA.add(new DataEntity(4,"北京大厦","14","2009-09-04"));
    listA.add(new DataEntity(13,"南京大厦","14","2009-09-01"));
    listA.add(new DataEntity(14,"南京大厦","16","2009-09-02"));
    listA.add(new DataEntity(15,"南京大厦","18","2009-09-03"));
    listA.add(new DataEntity(16,"南京大厦","10","2009-09-04"));
    List <DataEntity> listB=new ArrayList<DataEntity>();
    listB.add(new DataEntity(1,"北京大厦","13","2009-09-01"));
    listB.add(new DataEntity(2,"北京大厦","12","2009-09-02"));
    listB.add(new DataEntity(3,"北京大厦","14","2009-09-03"));
    listB.add(new DataEntity(4,"北京大厦","11","2009-09-04"));
    listB.add(new DataEntity(13,"南京大厦","14","2009-09-01"));
    listB.add(new DataEntity(14,"南京大厦","15","2009-09-02"));
    listB.add(new DataEntity(15,"南京大厦","17","2009-09-03"));
    listB.add(new DataEntity(16,"南京大厦","10","2009-09-04"));
    Map<Long,DataEntity> map=new HashMap<Long,DataEntity>();
    for(DataEntity ob:listA){
    map.put(ob.getId(),ob);
    }
    for(DataEntity ob:listB){
    if(!map.containsKey(ob.getId())){
    map.put(ob.getId(),ob);
    }else{
    ob.setValue(map.get(ob.getId()).getValue()+"/"+ob.getValue());
    map.put(ob.getId(),ob);
    }
    }
    Set<Long> set=map.keySet();
    System.out.println("id"+"  "+"name"+"   "+"value"+"   "+"date");
    for(Long id: set){
    System.out.println(id+"  "+map.get(id).getName()+"   "+map.get(id).getValue()+"   "+map.get(id).getDate());
    }

    }
    }结果:
    id  name   value   date
    1  北京大厦   12/13   2009-09-01
    2  北京大厦   10/12   2009-09-02
    3  北京大厦   11/14   2009-09-03
    4  北京大厦   14/11   2009-09-04
    13  南京大厦   14/14   2009-09-01
    14  南京大厦   16/15   2009-09-02
    15  南京大厦   18/17   2009-09-03
    16  南京大厦   10/10   2009-09-04