【发布时间】:2012-08-18 18:33:19
【问题描述】:
我正在尝试将一些计算从 Excel 移到我的 Access 数据库中,但是当我使用 5 个以上的输入值时,我遇到了“查询太复杂”错误。我应该拆分查询还是有更有效的解决方法?任何帮助,将不胜感激!代码如下:
SELECT qb1.CompanyName, qb1.Assetname, qb1.Year,
((qb1.DatapointValue*1000000)+qb2.DatapointValue+
qb3.DatapointValue+qb4.DatapointValue+qb5.DatapointValue+
qb6.DatapointValue) AS MPPOilRevised
FROM ((((((PEBaseQuery AS qb1
INNER JOIN PEBaseQuery AS qb2 ON qb1.AssetName=qb2.AssetName)
INNER JOIN PEBaseQuery AS qb3 ON qb1.AssetName=qb3.AssetName)
INNER JOIN PEBaseQuery AS qb4 ON qb1.AssetName=qb4.AssetName)
INNER JOIN PEBaseQuery AS qb5 ON qb1.AssetName=qb5.AssetName)
INNER JOIN PEBaseQuery AS qb6 ON qb1.AssetName=qb6.AssetName))
WHERE qb1.DatapointID=2003 And qb2.DatapointID=2032
And qb3.DatapointID=2034 And qb4.DatapointID=2042
And qb5.DatapointID=2036 And qb6.DatapointID=2030;
CompanyName, Year, AssetName, DatapointID, DatapointName, DatapointValue
CompanyA, 2011, CAAsset1, 2005, OIL, 170883.740972926
CompanyA, 2011, CAAsset1, 2032, Wellwork, 615913
CompanyA, 2011, CAAsset1, 2034, Annual shutdown, 0
CompanyA, 2011, CAAsset1, 2042, Export, 0
CompanyA, 2011, CAAsset1, 2036, Plant, 958387
CompanyA, 2011, CAAsset1, 2030, Reservoir, 2394231
【问题讨论】:
-
尝试将
qbX.DatapointValue操作数展平为(SELECT qbX.DatapointValue FROM ... WHERE.... ) AS ExprX。 -
一些单独的问题..为什么第一个 DatapointValue 需要乘以 1000000?它看起来很奇怪,因为这些值来自一列。我认为没有它可以让整个查询变得更加简单。
-
乘以一百万是因为我需要每百万桶石油的价值
标签: sql ms-access-2010