表 : refund 
字段:transaction_id ,refund_date , refund_completed_date  
现在比如我transaction_id=10000,refund_date=7-28,refund_completed_date =7-29 
现在问题是我那条SQl查出来1个id 分别按照2个date来查,搞到数据库只有10000这条记录,但是list显示了2条。
如何把这些分了2个date的记录查出来,然后再Remove掉一个date的记录,留一条。只要一个id和一个date。
谢谢~~

解决方案 »

  1.   

    主要如何写那条sql,把那些一条transaction_id 分了2个date的查出来后Remove掉一条。谢谢
      

  2.   

    就是数据库只有一条transaction_id记录,但是按照2个date来查,页面list按照2个date来显示了2条。但是transaction_id都是相同的。现在想要查出这些分了2个date的记录,然后删掉一条
      

  3.   

    我也没明白你什么意思,按照自己的想法写吧select transaction_id,refund_date,refund_completed_date  
    from refund 
    where
    transaction_id=1 
    and
    refund_date=2009-07-29
    and
    refund_completed_date=2009-07-30
    limit 1;就是将所有的结果中,只取一条出来。
      

  4.   

    5555~~~数据库只有一条transaction_id=10000号记录,但是sql分别按照2个date来查,所以页面显示了2条一样的transaction_id记录,但是date时间不一样。一条是refund_date的时间,一条是refund_completed_date  记录的。
    现在想把有这些情况的都查出来删掉一条。大哥们明白了吗??不好意思
      

  5.   

    是transaction_id相同的重复了吗?
    也就是说你要删除重复的那条是不?试这个statement
    select * from refund where rowid<(select max(rowid) from refund a where refund.transaction_id=a.transaction_id)
    这个是查询出所有多余的纪录,可以改成delete,也就是删除全部的多余纪录
    不知道是否符合你的要求
      

  6.   

    貌似不对,真没有明白你的意思,你是在数据库中操作,还是在java里面操作?
      

  7.   

    就是想把页面相同的transaction_id删掉一条。就符合数据库那一条记录了。不然数据库只有一条记录,但是页面显示了2条相同的transaction_id记录。2条相同的记录是因为按照了2个date来查询。所以想写一条sql查出这些有问题按照2个date分开的相同transaction_id记录删掉一条
      

  8.   

    想在action里面写一条sql查出来再删除其中一条相同的transaction_id记录
      

  9.   

    页面显示?使用的是什么?jdbc?hibernate?jsp?我现在理解是你一定要查询2个日期,然后又一定要在一起显示,是不?
    所以导致重复,那就要看你拿什么容器去处理这些结果啊,list?你是2个日期同时查找的还是分开查找同时显示的?你要说的更具体点俄,你用的是什么技术等
      

  10.   


    struts2?那就在action直接处理你拿到的结果集阿,写个方法删除list中transaction_id相同的纪录,然后传给页面