number(8)
データ型書式を持つ表にFILLD_DT
という列があります。この列を使用して、自分のテーブルにDerived dateという新しい列を作成しようとしています。
例:塗りつぶされた日には、=以下は数値形式の日付列にoracleの部分文字列関数を使用する方法
20170107
は、私が使用しているクエリであり、私は
をしてくださいました私に理解を助けるORA-00932を取得しています:一貫性のないデータ型を:期待CHARは
(CASE WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (01,02,03) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170101' WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (04,05,06) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170501' WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (07,08,09) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170701' WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (10,11,12) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20171001' ELSE FILLD_DT END) AS DRVD_DATE
NUMBER
以下は完全なクエリです
SELECT DISTINCT
SRC_ID,
SEQ_NBR,
PROD_ID,
TYPE_CD,
FILLD_DT,
PRCSD_DT,
(CASE WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (01,02,03) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170101'
WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (04,05,06) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170401'
WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (07,08,09) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170701'
WHEN PERD = 'Beginning' AND SUBSTR(FILLD_DT,5,2) IN (10,11,12) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20171001'
WHEN PERD = 'middle' AND SUBSTR(FILLD_DT,5,2) IN (01,02,03) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170115'
WHEN PERD = 'middle' AND SUBSTR(FILLD_DT,5,2) IN (04,05,06) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170415'
WHEN PERD = 'middle' AND SUBSTR(FILLD_DT,5,2) IN (07,08,09) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20170715'
WHEN PERD = 'middle' AND SUBSTR(FILLD_DT,5,2) IN (10,11,12) AND SUBSTR(FILLD_DT,1,4) = 2017 THEN '20171015'
ELSE FILLD_DT
END)
FROM
SOURCE
と私はあなたの提案にクエリを変更し、私は以下のエラー
[エラー]実行取得しています(8:29):ORA-01830:日付書式画像が入力全体を変換する前に を終了文字列
SELECT DISTINCT
SRC_ID,
SEQ_NBR,
PROD_ID,
TYPE_CD,
FILLD_DT,
PRCSD_DT,
(trunc(to_date(FILLD_DT || '01', 'yyyymmdd'), 'Q')
) AS DRVD_DATE
FROM
SOURCE
WHERE
SRC_ID = 163662
私はついていきます 正しい書式設定。 – NEWBEE