私はTeradata
とSQL
に非常に新しいです。私は3つのテーブルのデータを組み合わせてテーブルを作成する必要があります。私はうまくそれらの2つに参加することができました。私は3番目のテーブルの結合条件を正しく書くことができません。ここでは、コードは次のとおりです。Teradata - Varcharと小数点を比較する
select s.cola, s.colb,
t.colc, t.cold,
u.cole, u.colf, u.colg, u.colh, u.coli, u.colj, u.colk, u.coll
from table1 s
inner join table2 t
on s.colb = t.colc
inner join table3 u
on t.cold = cast(u.colm as decimal)
order by 3
where substr(cast(s.cola as varchar(10)),6,2) = 11 and substr(cast(s.cola as varchar(10)),1,4) = 2017 and substr(cast(s.cola as varchar(10)),9,2) between 06 and 10
私は取得していますエラーは次のとおりです。
[Teradata Database] [2620] The format or data contains a bad character.
私は問題がラインであると思う:on t.cold = cast(u.colm as decimal)
。 u.colm
はタイプVARCHAR(50)
であり、t.cold
はタイプDECIMAL(10, 0)
です。私はそれを適切にキャストしたと信じています。助けてください。あらかじめありがとうございます。
ありがとうございました。 'u.colm'にはアルファベットと数字の両方を含む値がいくつかあります。 't.cold'を' varchar(50) 'としてキャストして修正しました。 's.cola 'は日付ですが、上記の行は機能しませんでした。 'order by 'の修正をありがとうございます。 –
'trycast'の代わりに' cast'を試したときに 'where'条件の日付の問題が解決されました。 –