Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 来自具有子查询的查询的交叉表查询_Ms Access_Ms Access 2010_Ms Access 2007 - Fatal编程技术网

Ms access 来自具有子查询的查询的交叉表查询

Ms access 来自具有子查询的查询的交叉表查询,ms-access,ms-access-2010,ms-access-2007,Ms Access,Ms Access 2010,Ms Access 2007,有谁能帮我解决一个交叉表查询问题,比较我们供应商的当前价格? 它所使用的select查询有一个子查询,该子查询只选择最新的价格进行价格比较,这非常适合我们需要的数据,请参见以下内容: qryPriceComp: SELECT tblPriceComp.SupplyerID, tblPriceComp.ProductID, tblPriceComp.Effdt, tblPriceComp.CostPrice, tblProduct.Product, tblSupplier.Su

有谁能帮我解决一个交叉表查询问题,比较我们供应商的当前价格? 它所使用的select查询有一个子查询,该子查询只选择最新的价格进行价格比较,这非常适合我们需要的数据,请参见以下内容:

qryPriceComp:

SELECT tblPriceComp.SupplyerID, tblPriceComp.ProductID, 
    tblPriceComp.Effdt, tblPriceComp.CostPrice, 
    tblProduct.Product, tblSupplier.Supplier
FROM tblSupplier INNER JOIN 
    (tblProduct INNER JOIN tblPriceComp ON tblProduct.ProductID = tblPriceComp.ProductID) 
    ON tblSupplier.SupplierID = tblPriceComp.SupplyerID
WHERE (((tblPriceComp.Effdt) In 
    (SELECT MAX(B.EffDt) AS MaxOfDt FROM tblPriceComp AS B 
     WHERE tblPriceComp.ProductID=B.ProductID 
       AND tblPriceComp.SupplyerID=B.SupplyerID  
       AND B.EffDt <= Date()+1)));

但运行时会出现一个错误,即tblPriceComp.ProductID和tblSupplier.SupplierID都无效。我尝试将它们添加为周长,但运行时会出现一个输入ID号的框,这不好,因为我们希望看到所有ProductID和SupplyerID。如果有人能帮忙,我们将不胜感激

不是真正的解决方案,而是一个可用的解决方案:

qryPriceComp
更改为
INSERT-INTO-tentable
查询,然后将交叉表查询基于
tentable


在每次插入运行之前,必须执行一个
DELETE*FROM tentable

不是真正的解决方案,而是一个可用的解决方法:

qryPriceComp
更改为
INSERT-INTO-tentable
查询,然后将交叉表查询基于
tentable


在每次插入运行之前,必须执行一个
DELETE*FROM tentable

确切的错误消息是什么?运行交叉表查询时,我得到“Microsoft Access数据库引擎未将'tblPriceComp.ProductID'识别为有效的字段名或表达式。”以及“Microsoft Access数据库引擎无法将'tblPriceComp.SupplyerID'识别为有效的字段名或表达式。“奇怪。您可以尝试从qryPriceComp中的选择列表中删除交叉表查询中未使用的所有字段,即
tblPriceComp.SupplyerID、tblPriceComp.ProductID、tblPriceComp.Effdt
。如果所有其他操作都失败,您可以将qryPriceComp更改为插入到可诱惑的
查询中的
,然后将交叉表查询建立在诱惑的基础上。问候空间学员,很抱歉我们的回复太晚了,我们被赶出办公室,这样他们就可以锁起来了。正如您所说,更改为插入解决了问题。当需要交叉表时,我创建了一个删除查询来清除tblPriceCompCrosstab中的所有内容,然后运行qryPriceComp&将结果插入tblPriceCompCrosstab,然后运行交叉表以获得结果。其疯狂的冗长和低效,将需要更多的定期紧凑型和维修的后端,但直到我能找到一个更好的更优化的方式,我会做他的。感谢您的帮助:)确切的错误消息是什么?运行交叉表查询时,我会收到“Microsoft Access数据库引擎未将'tblPriceComp.ProductID'识别为有效的字段名或表达式”和“Microsoft Access数据库引擎未将'tblPriceComp.SupplyerID'识别为有效的字段名或表达式”。奇怪。您可以尝试从qryPriceComp中的选择列表中删除交叉表查询中未使用的所有字段,即
tblPriceComp.SupplyerID、tblPriceComp.ProductID、tblPriceComp.Effdt
。如果所有其他操作都失败,您可以将qryPriceComp更改为插入到可诱惑的
查询中的
,然后将交叉表查询建立在诱惑的基础上。问候空间学员,很抱歉我们的回复太晚了,我们被赶出办公室,这样他们就可以锁起来了。正如您所说,更改为插入解决了问题。当需要交叉表时,我创建了一个删除查询来清除tblPriceCompCrosstab中的所有内容,然后运行qryPriceComp&将结果插入tblPriceCompCrosstab,然后运行交叉表以获得结果。其疯狂的冗长和低效,将需要更多的定期紧凑型和维修的后端,但直到我能找到一个更好的更优化的方式,我会做他的。谢谢你的帮助:)
TRANSFORM Sum(qryPriceComp.CostPrice) AS SumOfCostPrice
SELECT qryPriceComp.Product
FROM qryPriceComp
GROUP BY qryPriceComp.Product
ORDER BY qryPriceComp.Product, qryPriceComp.Supplier
PIVOT qryPriceComp.Supplier;