2

MS Access 2010 に取り込んでいる JDE/AS400 からの ODBC リンク テーブルがあります。テーブルには、10 進数のデータ型を持つ 4 つのフィールドがあり、それらを一時テーブルに書き込んだら、倍精度データ型に変換する必要があります。1 つのクエリで 4 つの alter table/column ステートメントを使用する方法はありませんか?

これらのフィールドに格納されているデータは価格とコストですが、ODBC テーブルには 15 の 10 進数値として格納され、小数点以下は 0 です。真の価格/コストを表す適切な位置にあるポイント。同じデータを Access に取り込み、10000 で割ると、355.00 になります。正しいセント値が必要です。過去にこれを行うことができた唯一の方法は、除算を実行する前にデータ型を double に変更するために、alter table/alter column クエリを作成することです。

これらのフィールドが 4 つあるため、4 つすべてを一度に変更または修正したいと考えています。何か案は?

どんな助けでも大歓迎です。

4

2 に答える 2

2

Access(または私が知る限りANSI準拠のSQL)には、複数の列を同時に変更する方法はありません。次のいずれかを行う必要があります。

  • 4つの別々の変更スクリプトを実行する、または...
  • 新しい一時テーブルを作成し、すべてのデータを一時テーブルに移動し、メインテーブルを削除してから、一時テーブルの名前を変更します

どちらの方法でも4つのスクリプトを実行するので、この場合は本当に無駄です。

于 2013-03-07T19:48:11.387 に答える
1

前述のように、Access SQL では、1 つの SQL ステートメントで複数の列を変更することはできません。ただし、質問の背景情報には混乱を招くものがあります。

SELECT decimal_field/10^4 AS my_quotient
FROM tblFoo;

decimal_field精度 = 15、位取り = 0 の Decimal 型です。

そのクエリを保存3558767して実行すると、Access 2007は. そして、それはあなたが望んでいるが得られていないことを私が理解した結果です.decimal_field355.8767my_quotient

それを整理できれば、おそらく列を変更する必要はありません。

于 2013-03-07T20:21:19.223 に答える