我从以前的问题here中取得了以下代码并稍作了更改。向count()查询添加连接
SELECT *
FROM ES_TOOL
INNER JOIN ES_HARDWARE ON ES_HARDWARE.eshw_ID = ES_TOOL.ESTOOL_HARDWARE
INNER JOIN ES_PAYMENT on ES_payment.espay_id = es_TOOL.estool_payment
LEFT JOIN (
SELECT
tchap.estch_tool, tfacet.estfa_tool,
count(marks.esmrk_value) AmtMarks
FROM ES_MARK marks
left Join ES_TOOL_FACET tfacet ON marks.esmark_tool_facet = tfacet.estfa_id --line added
left Join ES_TOOL_CHAPTER tchap ON marks.esmark_tool_chapter = tchap.estch_id
GROUP BY tchap.estch_tool
) h ON ES_TOOL.estool_id = h.estch_tool
我试图添加一个额外的连接,试图从满足任一左连接“ON”条件的“标记”中获得标记计数。没有额外的行查询执行,但不计算符合“方面”条件的标记。随着它,我得到以下错误:
Msg 8120, Level 16, State 1, Line 1
Column 'ES_TOOL_FACET.estfa_tool' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
任何帮助,将不胜感激。
如果您可以在你的问题的一些例子输入和输出数据,它会更容易被具体介绍一下答案。 – 2011-03-14 08:55:39
'tchap.estch_tool'和'tfacet.estfa_tool'可以保持相同的值吗?如果可以的话,是否应将相同的数值匹配计算在一起? – 2011-03-14 09:45:59
@andry是的,绝对。 – Meir 2011-03-14 10:25:31