2

私はこのような2つのテーブルを持っています:

最終ダウンロード:

Movie    Date-last-downloaded
 A              1-1-1111
 B              2-2-2222
 C              3-3-3333
 D              4-4-4444
 E              5-5-5555

最終購入日:

Movie    Date-last-purchased
 A              0-0-0000
 B              3-3-3333
 C              5-5-5555
 G              2-2-2222
 H              7-7-7777

そして、各映画の最後のダウンロードまたは購入を見つけようとしています。あれは:

  • 映画を購入してダウンロードした場合は、日付の遅い方 (最新) を返します。
  • それ以外の場合、ダウンロードのみで購入されていない (またはその逆) 場合は、Date-last-downloaded(またはDate-last-purchased)を返します。

どうすればできますか?

最終結果は次のようになります。

Movie    Date-last-purchased-or-downloaded
 A              1-1-1111
 B              3-3-3333
 C              5-5-5555
 D              4-4-4444
 E              5-5-5555
 G              2-2-2222
 H              7-7-7777

(質問名は誤解を招きます-誰かがより良いものを考えて修正してくれれば幸いです)

4

2 に答える 2

2
select  movie
,       max(dt)
from    (
        select  Movie
        ,       Date-last-downloaded as dt
        from    LastDownloaded
        union all
        select  Movie
        ,       Date-last-purchased
        from    LastPurchased
        ) SubQueryAlias
group by
        movie
于 2013-04-06T19:57:55.057 に答える
1
select
    coalesce(lp.movie, ld.movie) movie,
    greatest(
        date_last_downloaded,
        date_last_purchased
    ) Date_last_purchased_or_downloaded
from
    lastdownloaded ld
    full outer join
    lastpurchased lp on ld.movie = lp.movie
于 2013-04-06T23:59:13.410 に答える