2017-04-26 9 views
0

テーブルSELL_TABLEは、これらのカラムがありますのSQL ORACLE - 最後の180日間で追加され、いくつかのプロパティを持つデータを抽出し

  • LEGACY_ID
  • PRODUCT_ID
  • CUSTOMER_ID
  • DATE
SOLD
  • で注文されたすべての行を抽出する必要がありますここで、SOLD> 1であり、最後の180日間に挿入されます。

    DATE列はVARCHARと定義されていますので、その内容をdatetimeに変換する必要があります。

    どうすればいいですか?

    これは私がクエリを書いた方法です:

    select CUSTOMER_ID as Customer, PRODUCT_ID as Product 
        from SELL_TABLE 
        where SOLD > 0 and DATE >= DATEADD(day, -180, getdate()) 
        group by CUSTOMER_ID, PRODUCT_ID 
        order by CUSTOMER_ID; 
    
  • +0

    は日付が固定された形式で保存されます。

    また、あなたは簡単なアクションで

    DATEADD

    機能を置き換えることができますか?もしそうなら、どちらですか? – Aleksej

    +0

    @Aleksej Yes - > 20160208(Y、M、D) – Dygne

    答えて

    1

    あなたは次のようにto_datesysdatewhere条件が必要になる場合があります

    where to_date(yourDateColumn, 'yyyymmdd') >= trunc(sysdate) - 180 
        and ... 
    
    0

    あなたは

    TO_DATEを使用することができます

    varchar列を日付型に変換する関数です。

    trunc(sysdate) >= trunc (sysdate - 180) 
    
    関連する問題