【发布时间】:2016-12-20 01:06:44
【问题描述】:
我正在构建一个将几个表连接在一起的报表。一切都完美地结合在一起,减去了一个方面。我需要 cost2 字段仅显示最高成本。基本上,一个项目在生产过程中会经历多次成本变化,最终成本最高。我只需要查询最终成本。我知道这是一个简单的解决方案,但我在这方面的努力超出了我的预期。
这是我的查询的简化示例:
MAX 功能没有按我的预期工作。
SELECT DISTINCT table1.item_no,
table2.quantity,
table2.date,
table3.cost1,
MAX(table4.cost2)
FROM table1
INNER JOIN table2 ON table2.item_no = table1.item_no
INNER JOIN table3 ON table3.item_no = table1.item_no
INNER JOIN table4 ON table4.item_no = table1.item_no
WHERE table3.cost1 <> 0
GROUP BY table1.item_no,
table2.quantity,
table2.date,
table3.cost1
【问题讨论】:
-
您如何确定最终成本?
-
最后一个 INNER JOIN 的错字是逗号而不是句号吗?
table1,item_no应该是table1.item_no -
你能定义“不像我想要的那样工作”吗???如果我要根据模糊的描述为您的查询定义抛出一些伪代码,它看起来与您发布的完全一样。帮助我们了解问题,我们可以帮助您找到解决方案。这是一个很好的起点。 spaghettidba.com/2015/04/24/…
-
@vkp 它是 table4.cost4 的最高迭代次数。
-
@xQbert 编辑谢谢。
标签: sql sql-server filter max