我正在构建应用程序并将MS Access用作数据库(通常我不使用MS Access,但是客户端需要无服务的数据库)。无论如何,我有多个表并使用联接,我试图获取输出,这是查询
SELECT tblSalesDetail.Sales_Details_ID, tblProduct.Product_Name,
tblSalesDetail.Rate, tblSalesDetail.Quantity, tblSalesDetail.TaxableAmount,
tblSalesDetail.TaxableAmount + tblSalesDetail.CGST_Amt +
tblSalesDetail.SGST_Amt + tblSalesDetail.IGST_Amt AS TotalAmt
FROM tblSalesMain
INNER JOIN tblSalesDetail
ON tblSalesMain.Sales_Main_ID = tblSalesDetail.Sales_Main_ID
INNER JOIN tblProduct
ON tblSalesDetail.Product_ID = tblProduct.Product_ID
WHERE tblSalesMain.Sales_Main_ID=1
此查询在SQL Server中运行完美,但在第一行_Name
的{{1}}处选择的文本中尝试在MS Access中运行时出现以下错误。
我尝试通过更改或删除该列,但无法正常工作。
我尝试过发布的StackOverflow答案,但是没有一个起作用。因此,这就像我在不尝试解决此问题的情况下直接在此处发布问题一样。
我知道这可能是一个简单的问题,但我被困住了。让我知道解决方法。
我知道这与上述主题无关,但是谁能为我推荐Visual Studio的优质,无需服务的localdb(不是基于mdf的SQL Db)?
致谢
答案 0 :(得分:2)
MS Access对语法非常挑剔。试试这个:
SELECT tblSalesDetail.Sales_Details_ID, tblProduct.Product_Name, tblSalesDetail.Rate,
tblSalesDetail.Quantity, tblSalesDetail.TaxableAmount,
(tblSalesDetail.TaxableAmount + tblSalesDetail.CGST_Amt + tblSalesDetail.SGST_Amt + tblSalesDetail.IGST_Amt) AS TotalAmt
FROM (tblSalesMain INNER JOIN
tblSalesDetail
ON tblSalesMain.Sales_Main_ID = tblSalesDetail.Sales_Main_ID
) INNER JOIN
tblProduct
ON tblSalesDetail.Product_ID = tblProduct.Product_ID WHERE tblSalesMain.Sales_Main_ID = 1