0

内部結合で問題が発生していますこれを行いたい

T1

id   (other atributes)
1
2
3


T2
id      t1_id  order    packat sent    package recievied  other attributes
1       1       0          date*            some date
2       1       1        some date          some date
3       1       2        some date          some date
4       1       3        some date            date**
5       2       0         date*             date**
6       2       0         date*             some date*
7       3       1        some date            date**

結果

結果

T1               T2             T2    package sent  package recievied
atributes   order(0)        order(3)    date*         date**
atributes   order(0)        order(0)    date*         date**
atributes   order(0)        order(1)    date*         date**

さまざまなアプローチを試しましたが、この結果を得ることができませんでした

select * from  table1 t1
INNER JOIN table2 t2part1 on(t2part1.t1_id = t1.id and t2part1.ordem =0)
INNER JOIN table t2part2 on (t2part2.t1_id = t1.id and max(t2part2.ordem))

別の結合で T1 を使用しています

4

1 に答える 1

1

ネストされた でこれを行うことができますrow_number()

select *
from  table1 t1 INNER JOIN
      table2 t2part1
      on t2part1.t1_id = t1.id and t2part1.ordem =0 INNER JOIN
      (select t2part2.*,
              ROW_NUMBER() over (partition by t2part2.id order by t2part2.ordem desc) as seqnum
       from table t2part2
      ) t2part2
      on t2part2.t1_id = t1.id and t2part2.seqnum = 1
于 2013-02-04T19:43:16.077 に答える