レートとレートインを計算するSSISパッケージがあります。ProdとDevの小数点以下四捨五入動作(SSISパッケージ)
私はDEV環境でこれを実行し、レート= 1.3850588235、RateIns = 1.1389411765 しかし、私はprod環境、レート= 1.3850588235でこれを実行し、RateIns = 1.1389411764
私はSSMSでSSISロジックを模倣しようとしましたが、以下のコードは次のとおりです。
CREATE TABLE #TEMP(
GST [decimal](10, 2) NULL,
[GSTFin] [decimal](10, 2) NULL,
[GSTExl] [decimal](10, 2) NULL,
[Rate] [decimal](18, 10) NULL,
[RateIns] [decimal](18, 10) NULL
)
insert into #temp values (11773.00,2092.00,8500.00,0,0)
UPDATE #TEMP
SET Rate=ISNULL(GST,0)/ISNULL(GSTExl,0)
,RateIns=(ISNULL(GST,0) - ISNULL(GSTFin,0))/ISNULL(GSTExl,0)
SELECT * FROM #temp
DROP TABLE #TEMP
結果:DEV &のProdショー両方とも同じ値: レート= 1.3850588235、RateIns =これが確認1.1389411765
、その問題I SSISパッケージに含まれています。 ProdパッケージとDevパッケージの両方のコンポーネントのメタデータを比較しました。すべて一致します。 実際、Prod!にデプロイされた同じSSISパッケージは、
かしら、なぜ製品版SSISパッケージ示しているRateIns = 1.1389411764
任意の提案ですか?
そのないあなたのパッケージです。それは10進データ型と関係があります。誰かがこれを早い段階で説明していましたが、残念ながら今スレッドを見つけることができません。 –
ありがとうPrabhat。 googleでそれを検索するためのヒント?私はこのトピックを参照しようとしましたが、無駄です。 – Ash
乾杯!もう一度それを見つけました。 :https://stackoverflow.com/questions/44918488/difference-when-casting-a-datetime-to-a-decimal-on-different-sql-servers/44919027#44919027 –