C# 查询不会显示十进制值
我有一个Access查询,它应该会提取一组项目在一个月内购买的数量。“我的加入”设置为从分析中选择所有项目,并从产品中选择与分析匹配的项目C# 查询不会显示十进制值,c#,ms-access,decimal,C#,Ms Access,Decimal,我有一个Access查询,它应该会提取一组项目在一个月内购买的数量。“我的加入”设置为从分析中选择所有项目,并从产品中选择与分析匹配的项目 SELECT AnalysisItems.Pmid, AnalysisItems.ProductName, Sum(Transactions.TransactionQty) AS SumOfTransactionQty, Transactions.StoreAccount FROM AnalysisItems INNER JOIN
SELECT AnalysisItems.Pmid, AnalysisItems.ProductName, Sum(Transactions.TransactionQty)
AS SumOfTransactionQty, Transactions.StoreAccount
FROM AnalysisItems INNER JOIN Transactions ON AnalysisItems.Pmid = Transactions.Pmid
WHERE (((Transactions.TransactionDate) Between #4/1/2011# And #4/30/2011#)
AND StoreAccount = 964290)
GROUP BY AnalysisItems.Pmid, AnalysisItems.ProductName, Transactions.StoreAccount
ORDER BY AnalysisItems.ProductName;
我想查看所有78个分析项,无论它们是否具有数量值。这仅返回具有数量的项。它也不会返回负值或介于0和1之间的值。。。它不会显示0.50,即使我知道其中有一些十进制值。一切都设置为标准十进制,小数点为2 我试着换成通用数字,完全摆脱格式,但也不起作用
因此,我的问题是:我可以尝试在查询中查看十进制值,以及如何查看所有项 查询的一部分是:
FROM AnalysisItems INNER JOIN Transactions ON AnalysisItems.Pmid = Transactions.Pmid
WHERE (((Transactions.TransactionDate) Between #4/1/2011# And #4/30/2011#)
您指定的内部联接不会给出您要求的结果-理想情况下,您希望使用左联接。替换
FROM AnalysisItems INNER JOIN Transactions
与
我认为它应该可以正常工作您的部分查询如下:
FROM AnalysisItems INNER JOIN Transactions ON AnalysisItems.Pmid = Transactions.Pmid
WHERE (((Transactions.TransactionDate) Between #4/1/2011# And #4/30/2011#)
您指定的内部联接不会给出您要求的结果-理想情况下,您希望使用左联接。替换
FROM AnalysisItems INNER JOIN Transactions
与
我认为它应该可以正常工作我想查看所有78个分析项目,无论它们是否具有数量值 如果这意味着您希望在结果集中包括AnalysisItems行,即使这些行在4月份和StoreAccount 964290的事务中没有任何匹配项,那么在WHERE子句中放置这些条件时,它们将不会包括在内。。。您将只获得与WHERE子句条件匹配的行 我认为您需要对事务使用子查询,并将WHERE子句移动到子查询中。并将AnalysisItems左键联接到子查询
SELECT
a.Pmid,
a.ProductName,
Sum(t.TransactionQty) AS SumOfTransactionQty,
t.StoreAccount
FROM
AnalysisItems AS a
LEFT JOIN [
SELECT
Pmid,
TransactionQty,
StoreAccount
FROM Transactions
WHERE
(TransactionDate Between #4/1/2011# And #4/30/2011#)
AND StoreAccount = 964290
]. AS t
ON a.Pmid = t.Pmid
GROUP BY
a.Pmid,
a.ProductName,
t.StoreAccount
ORDER BY
a.ProductName;
我想查看所有78个分析项,无论它们是否具有数量值 如果这意味着您希望在结果集中包括AnalysisItems行,即使这些行在4月份和StoreAccount 964290的事务中没有任何匹配项,那么在WHERE子句中放置这些条件时,它们将不会包括在内。。。您将只获得与WHERE子句条件匹配的行 我认为您需要对事务使用子查询,并将WHERE子句移动到子查询中。并将AnalysisItems左键联接到子查询
SELECT
a.Pmid,
a.ProductName,
Sum(t.TransactionQty) AS SumOfTransactionQty,
t.StoreAccount
FROM
AnalysisItems AS a
LEFT JOIN [
SELECT
Pmid,
TransactionQty,
StoreAccount
FROM Transactions
WHERE
(TransactionDate Between #4/1/2011# And #4/30/2011#)
AND StoreAccount = 964290
]. AS t
ON a.Pmid = t.Pmid
GROUP BY
a.Pmid,
a.ProductName,
t.StoreAccount
ORDER BY
a.ProductName;
谢谢,试过了,但还是不行。我还继续尝试了LEFT-OUTER。Jet/ACE SQL对LEFT-OUTER联接与LEFT-JOIN的处理方式没有任何区别。如果您使用LEFT-OUTER联接编写查询,保存它,关闭它,然后重新打开它,您会发现它显示LEFT-JOIN,因此使用Jet/ACE SQL时,OUTER是在浪费时间。谢谢,尝试过了,但它仍然不起作用。我还继续尝试了LEFT-OUTER。Jet/ACE SQL对LEFT-OUTER连接和LEFT-JOIN的处理没有任何区别。如果您使用LEFT-OUTER连接编写查询,保存它,关闭它,然后重新打开它,您会发现它显示LEFT-JOIN,因此使用Jet/ACE SQL时,OUTER是在浪费时间。这非常有效,谢谢!我现在唯一要弄清楚的是。。这两个日期和商店帐户是从我的windows窗体应用程序的组合框中选择的。通常在我会使用的查询中?代替实际值,但当我尝试将?'用于此查询时,出现无法解析错误。这可能与参数设置有关吗?我看看能找到什么信息。不客气。很抱歉,我无法帮助您使用来自Dot Net的参数。祝你好运,真是太棒了,谢谢你!我现在唯一要弄清楚的是。。这两个日期和商店帐户是从我的windows窗体应用程序的组合框中选择的。通常在我会使用的查询中?代替实际值,但当我尝试将?'用于此查询时,出现无法解析错误。这可能与参数设置有关吗?我看看能找到什么信息。不客气。很抱歉,我无法帮助您使用来自Dot Net的参数。祝你好运