इसे हल करने के लिए कुछ भी नहीं मिला।

मैं एक्सेस डेटाबेस 2007 32 बिट पर कुछ आसान चीजें कर रहा हूं।

यह तालिका मिली:

Id_iva  Desde       Hasta       Valor_Iva
2       01/01/2000  31/08/2012  18,00%
4       01/09/2012  31/12/2021  21,00%
5       01/01/2022  31/12/2099  25,00%

Valor_iva एक संख्यात्मक फ़ील्ड है, एकल प्रकार। मैं मैन्युअल रूप से उन नंबरों को इनपुट करता हूं, केवल 2 दशमलव के साथ (इस मामले में वे सभी 0 हैं, लेकिन यह 18,50% या 20,23% और इसी तरह कुछ हो सकता है)

अगर मैं इस तरह की कोई क्वेरी करता हूं:

SELECT T_IVA.Hasta, T_IVA.Valor_Iva FROM T_IVA;

यह अपेक्षा के अनुरूप काम करता है और यह बिल्कुल मान देता है:

enter image description here

लेकिन अगर मेरी क्वेरी यह है:

SELECT T_IVA.Hasta, Sum(T_IVA.Valor_Iva) AS SumaDeValor_Iva FROM T_IVA GROUP BY T_IVA.Hasta;

मुझे कुछ मूल्यों में एक्स्ट्राडेसिमल मिलते हैं।

enter image description here

समझ में नहीं आता कि वे दशमलव कहाँ से आते हैं।

मैंने CAST और TRUNCATE के बारे में गुगल किया है लेकिन मैं उनको लागू नहीं कर सका (या मुझे नहीं पता कि कैसे)।

मैं क्या चाहता हूं: मैं केवल एक समूह द्वारा क्वेरी बनाना चाहता हूं जो उन दशमलवों को नहीं जोड़ता।

अग्रिम में धन्यवाद।

0
Foxfire And Burns And Burns 11 सितंबर 2020, 15:33

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप सटीक परिणाम चाहते हैं, तो कोई भी ऑपरेशन करने से पहले एक सटीक प्रकार पर कास्ट करें। या, और भी बेहतर, पहले स्थान पर एक सटीक (गैर-फ़्लोटिंग पॉइंट) प्रकार का उपयोग करें।

ऐसा लगता है कि आपके मान Currency डेटा प्रकार में फ़िट हैं। Decimal डेटा प्रकार का उपयोग दशमलव वाले बड़े मानों के लिए किया जा सकता है।

SELECT T_IVA.Hasta, Sum(CCur(T_IVA.Valor_Iva)) AS SumaDeValor_Iva FROM T_IVA GROUP BY T_IVA.Hasta;
1
Erik A 11 सितंबर 2020, 15:39