簡體   English   中英

為什么此SQL代碼在Microsoft Access中不起作用,但在SQL Server Management Studio中起作用?

[英]Why does this SQL code not work in Microsoft Access but works in SQL Server Management Studio?

此代碼在Microsoft Access中將不起作用,但在Microsoft SQL Server Management Studio中將起作用。 我該怎么做才能在Access中工作? 我不斷得到

“查詢表達式'CAST(od.UnitPrice * od.Quantity *(1 + od.Discount)為十進制(10,2))'Order Total'的語法錯誤(缺少運算符)。

Select TOP 5 
    c.CompanyName as 'Company Name', 
    CAST(od.UnitPrice * od.Quantity * (1 + od.Discount) as decimal(10, 2)) 'Order Total'
From 
    Customers as c
Join 
    Orders as o On c.CustomerID = o.CustomerID
Join 
    OrderDetails as od On o.OrderID = od.OrderID
Where 
    od.UnitPrice * od.Quantity * (1 + od.Discount) > 5000 
    AND c.Country IN ('Austria', 'Denmark', 'Germany', 'Ireland', 'Sweden')
Order By 
    o.OrderDate desc

您不能在Access中使用CAST ...嘗試使用以下選項:

Cint-轉換為整數

ng-

CDBL-

CSNG-

CSTR-字符串

Cbool-布爾值

CDec-小數

示例: SELECT clng(fieldName) FROM tableName

在您的情況下:

Select TOP 5 
    c.CompanyName as 'Company Name', 
    CDec(od.UnitPrice * od.Quantity * (1 + od.Discount)) 'Order Total'
From 
    Customers as c
Join 
    Orders as o On c.CustomerID = o.CustomerID
Join 
    OrderDetails as od On o.OrderID = od.OrderID
Where 
    od.UnitPrice * od.Quantity * (1 + od.Discount) > 5000 
    AND c.Country IN ('Austria', 'Denmark', 'Germany', 'Ireland', 'Sweden')
Order By 
    o.OrderDate desc

希望有幫助!

我認為CAST在Access(如果存在)中不能正常工作。 我會取出CAST並將其更改為類似CDec()函數的內容。 您通常必須使用以下之一: https : //support.office.com/zh-cn/article/Type-Conversion-Functions-8ebb0e94-2d43-4975-bb13-87ac8d1a2202

CAST和CONVERT列函數似乎在MS Access中不起作用。

嘗試使用CInt或CLng函數,具體取決於您要的是整數(16位)還是長整數(32位)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM