2016-09-23 3 views
0

私はsqliteの下のテーブルのデータ型選択を失っています。黄色で強調表示された列はユーザ​​ー入力であり、残りは計算されたフィールドです。スクリーンショットは、sqliteテーブルではないスプレッドシートを表示します。 enter image description hereSQLiteで私のテーブルのベストデータタイプ

私が得た知識から、データ型の選択(測定可能な程度まで)は計算フィールドの値に影響を与えると言われています。

たとえば、私はすべての入力フィールドが左に向かってDATE以外の&の右側に計算されたフィールドを持つsqliteテーブルELZ_Aを作成します。一つは、フィールドVOLTS_STNDRを計算見ることができるように、私はtriggers

UPDATE ELZ_A SET CURRENT_DENSITY = ROUND((LOAD/2.721), 2); 
UPDATE ELZ_A SET VOLTS_AVG = ROUND((VOLTS_T/ELEMENTS), 2); 
UPDATE ELZ_A SET VOLTS_STNDR = ROUND(2.4 + ((12.75/2.721) * ((VOLTS_AVG - 2.4)/CURRENT_DENSITY) - ((90 - CATHOLYTE_TEMP) * 0.01) + ((32 - CATHOLYTE_CONC) * 0.02)), 4); 
UPDATE ELZ_A SET KF_FACTOR = ROUND(((VOLTS_AVG - (90 - CATHOLYTE_TEMP) * 0.016 * ((LOAD/2.721)/5)) + ((32 - CATHOLYTE_CONC) * 0.033 * ((LOAD/2.721)/5) - 2.4))/(LOAD/2.721), 4); 

を追加した場合は、さらにだから私はデータを使用して確保することができる方法... KF_FACTORはまた、私は2ヶ所、後者点で最大4件まで最初の二つの結果を四捨五入しています計算するのに使用されます-type最高のEXCELが


問題がさらに@SQLiteスタジオv3.0.6 @Debian X32について説明した計算するものと似て正確な計算された答えを得るために表示されるデータに適し

私の列には、要素(整数)以外の小数点以下の桁が含まれていますので、私はEFFICIENCYまではさらにユーザー列の計算列です。 EFFICIENCYは全体の数プロダクションです1を観察することができたよう今、私はこの問題 enter image description here を持っています enter image description here

はゼロになります?ではなぜこの問題が起こるのですか?問題は、チューニングデータ型など enter image description here enter image description here によって軽減される...しかし、私は

+0

SQLビューは、計算されたデータを通常のテーブルとして機能させながら計算することができます。実際のテーブルに計算値を格納すると、計算データがソースデータと一致しないリスクが発生します。 –

+0

..ソースデータが一致していない場合は、クエリが.dbの破損に終わらない限りは不可能です。 – nightcrawler

+0

確かに可能です:INSERT INTO some_table(x、x_plus_two)VALUES(15,16); UPDATE some_table SET x = 3どこx = 5/* oopsがx_plus_two * /;を更新するのを忘れた –

答えて

0

は、SQLiteのはdynamic typingを使用して実際の原因を理解することはできませんので、これは、さらに混乱しているので、あなたが宣言どのようなデータ型は、DB自体のために重要ではありません。 。

Excelでは、数値は常に最大精度で格納されます。書式設定は表示方法にのみ影響します。 精度を最大限に高めるには、すべてのROUND()呼び出しを削除し、データを表示するコードを変更します。

計算されたフィールドは、ビューで最もよく実装されます。

関連する問題