从db2表中选择不同的列

时间:2015-03-05 21:47:27

标签: sql spring db2 spring-batch batch-processing

我使用弹簧批量从表中读取数据并将数据写入另一个表格,我使用弹簧写入器作为插入部分。我的问题是:

我从表中获取如下所示的数据:

cust   type   date
====   =====  ====
 1       P    1985
 1       P    1980
 1       P    1970
 2       P    1984

我试图通过运行上表中select distinct( cust , type)的查询来将这些数据插入到另一个表中,以获得以下结果:

cust   type   date
====   =====  ====
 1       P    1985
 2       P    1984 

基本上我想做的是获取cust and type的不同集合,如果此cust. type集有多个记录,那么我得到max(date)

在使用查询时是否还有这样做?或任何有效方法的建议?

提前致谢!

  

更新:

日期中有一些记录具有NULL值,例如

cust   type   date
====   =====  ====
 1       P    NULL
 1       P    NULL
 1       P    NULL
 2       P    1984

如果我查询max(date),它将不会返回cust(1)的任何记录..任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

select 
   cust, 
   type, 
   max(isnull(date,'1/jan/1900')) 
from 
   <table>
group by 
    cust, 
    type

应该做的工作!

编辑:

在日期周围的isnull中添加,因此如果它为null,它仍将返回一个值。我自己还没有测试过,所以让我知道它是怎么回事!