2011-11-09 62 views
0

我正嘗試在Access中創建表格。如何在SQL中設置精度和縮放比例(訪問)

我有以下代碼:

CREATE TABLE Class Enrollement (
    OfferNo   INTEGER  PRIMARY KEY, 
    StdNo Text(9) NULL, 
    EnrGrade Decimal(2) Percision(8) scale(4) NULL 
); 

EnrGrade需要是小數,8精密的刻度4,和2位小數。

最後一行代碼不正確。我將如何做到這一點?

回答

2

我相信你正在尋找:

其中第一個值是精度(十進制數字,其次是規模,還是數字的小數點後)

CREATE TABLE ClassEnrollment (
    OfferNo INTEGER PRIMARY KEY, 
    StdNo Text(9) NULL, 
    EnrGrade Decimal(8, 2) NULL 
); 
+0

假設我想將OfferNo設置爲主鍵和外鍵。那可能嗎? – Brandon

+0

另外,小數點後面的比例和數字是相同的東西? – Brandon

+0

我不確定你的意思是什麼,對不起。如果你詳細說明,也許我可以回答你的問題。 –

0

您必須啓用ANSI-92 Query Mode 。之後,在您的查詢,你可以這樣寫:

CREATE TABLE Offering (
    OfferNo INTEGER PRIMARY KEY, 
    StdNo Text(9) NULL, 
    EnrGrade Decimal(8,4) NULL 
); 
0

精密的8,4尺度,和2位小數

這些要求出現矛盾。精度爲8並且刻度爲4的小數列可以存儲多達4位小數位。

也許意向書的規格是顯示至少兩位小數的地方?例如

SQL DDL:

CREATE TABLE ClassEnrollement (
    OfferNo INTEGER PRIMARY KEY, 
    StdNo NVARCHAR(9), 
    EnrGrade DECIMAL(8, 4) 
); 

SQL DML:

SELECT OfferNo, StdNo, 
     FORMAT$(ClassEnrollement, '0.00##') 
      AS ClassEnrollement__formatted 
    FROM ClassEnrollement; 

或許額外的數字規模爲啓用自定義四捨五入? DECIMAL類型展品爲四捨五入,因爲所有其他數字類型都顯示出銀行家的四捨五入,所以這個功能經常被忽略。經驗法則是存儲一個數字縮放的額外位置,以便固有舍入(無論它是什麼)不影響要存儲的原始值,以便稍後應用自定義舍入。兩個額外的可能只是過度工程;)

相關問題